如题,下面是程序。但我不知道为什么在for语句的时候,必须使用**divisor<=d/2**,,为什么要**d/2**,而divisor<=d为什么就无法执行限入死循、、这里break是不是跳出整个while循环,还是调回到for.求解。
import java.util.Scanner;
public class Test{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
/*a为素数的个数,
b为每行打印的个数
c为变量计算素数的个数。
d为数字。
e为布尔值*/
final int a =50;
final int b =10;
int c = 0;
int d = 2;
while(c<a){
boolean e =true ;
for(int divisor =2;divisor<=d/2;divisor++){
if(d%divisor==0){
e = false;
break;}
}
if (e){
c++;
if(c%b==0)
System.out.println(d);
else
System.out.print(d+" ");
}
d++;
}
}
}
java 新手 关于素数的简单问题。请指教
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-