Java 检查素数的循环
只是想知道为什么if条件在这里不起作用。您的else子句是错误的。每次Java 检查素数的循环,java,if-statement,for-loop,Java,If Statement,For Loop,只是想知道为什么if条件在这里不起作用。您的else子句是错误的。每次n不能被i整除时,它都会打印“素数”。它甚至会打印非素数输入的prime(例如,它会在打印“Not prime”之前打印21的“prime”,因为21%2!=0) 将循环更改为类似以下内容: 7 Prime Prime Prime Prime Prime for(int i=2;i
n
不能被i
整除时,它都会打印“素数”。它甚至会打印非素数输入的prime
(例如,它会在打印“Not prime”之前打印21的“prime”,因为21%2!=0)
将循环更改为类似以下内容:
7
Prime
Prime
Prime
Prime
Prime
for(int i=2;i if(nYour else子句是错误的。它每次打印“Prime”时n
不能被i
整除。它甚至会打印非Prime输入的Prime
(例如,它会在打印“not Prime”之前打印21的“Prime”,因为21%2!=0)
将循环更改为类似以下内容:
7
Prime
Prime
Prime
Prime
Prime
for(int i=2;iboolean isPrime=true;
扫描仪sc=新的扫描仪(System.in);
int n=sc.nextInt();
for(int i=2;i
布尔值isPrime=true;
扫描仪sc=新的扫描仪(System.in);
int n=sc.nextInt();
for(int i=2;i
您的代码将打印素数,直到找到除数
boolean isPrime = true;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 2; i< n; i++){
if(n%i==0) {
System.out.println("Not Prime");
isPrime=false;
break;
}
}
if(isPrime) {
System.out.println("Prime");
}
for(int i=2;i
另外,您不需要迭代到n,因为在n/2之后将没有可以除以n的数字:-)
检查此代码
for (int i = 2; i< n; i++){
if( n <= 3){
System.out.println("Prime");
break;
}else if( n%i ==0){
System.out.println("Not Prime");
break;
}else{
System.out.println("Prime"); --> this line will be printed every time in your loop!
}
}
private静态布尔校验素数(int n){
int i=2;
而(i您的代码将打印素数,直到找到除数
boolean isPrime = true;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 2; i< n; i++){
if(n%i==0) {
System.out.println("Not Prime");
isPrime=false;
break;
}
}
if(isPrime) {
System.out.println("Prime");
}
for(int i=2;i
另外,您不需要迭代到n,因为在n/2之后将没有可以除以n的数字:-)
检查此代码
for (int i = 2; i< n; i++){
if( n <= 3){
System.out.println("Prime");
break;
}else if( n%i ==0){
System.out.println("Not Prime");
break;
}else{
System.out.println("Prime"); --> this line will be printed every time in your loop!
}
}
private静态布尔校验素数(int n){
int i=2;
while(Itis works fine额外的素数是由于else part导致的)您期望的输出是什么?只需添加break in else part.}else{System.out.println(“prime”);break;}可能重复此操作很好额外的素数是由于else part导致的您期望的输出是什么?只需添加break in else part.}else{System.out.println(“Prime”);break;}的可能副本
for (int i = 2; i< n; i++){
if( n <= 3){
System.out.println("Prime");
break;
}else if( n%i ==0){
System.out.println("Not Prime");
break;
}else{
System.out.println("Prime"); --> this line will be printed every time in your loop!
}
}
private static boolean checkPrime(int n) {
int i = 2;
while(i<=n/2){
if(n%i++ == 0){
return false;
}
}
return true;
}