import java.util.*;
public class isPrimeNumber {
public static void main(String[]args)
{
Scanner f=new Scanner(System.in);
while(true)
{
int a=f.nextInt();
for(int i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0)
System.out.println("不是一个素数");
}
System.out.println("是一个素数");
}
}
}我的意思,大家看了代码,估计也知道了,我输入11的时候,结果和我意料的一样,可我输入9的时候,由于if代码块也执行了,导致输出2个结果,怎样才能改成我意料的结果呢
if(a%i==0)
{
System.out.println("不是一个素数");
break;
}
import java.util.*;
public class isPrimeNumber {
public static void main(String[]args)
{
Scanner f=new Scanner(System.in);
while(true)
{
int a=f.nextInt();
boolean sushu=true;
for(int i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0) {
System.out.println("不是一个素数");
sushu=false;
}
}
if (sushu){
System.out.println("是一个素数");
}
}
}
}
if(a%i==0) {
System.out.println("不是一个素数");
break;
}
只是FOR里面的符合才会执行... boolean b = true;
for(int i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0){
System.out.println("不是一个素数");
b = false;
break;
}
}
if(b){
System.out.println("是一个素数");
} 帮你改了下
public class isPrimeNumber {
public static void main(String[] args) {
boolean isPrime = true;//定义一个标识isPrime,可以根据标识判断是不是素数
Scanner f = new Scanner(System.in);
int a = f.nextInt();
for (int i = 2; i <= Math.sqrt(a); i++) {
if (a % i == 0)
isPrime = false;
break;
}
if (isPrime) {
System.out.println(a + " isPrime");
} else {
System.out.println(a + " is Not Prime");
}
}}
或者把逻辑写在一个单独的函数中,不是素数了就return