这是一段代码
public class PrimeNumber{
public static void main(String[] args){
int n,i,j=0;
System.out.println("100以内的素数:");
for(n=2;n<=100;n++){
for(i=2;i<n;i++){//第二层循环,
boolean flag=true;
if(n%i==0){//只要有第一个数被整除,则该数不是素数
flag=false;
break;
}
if(flag){
System.out.print(n+" ");
}
}
if(j%10==0){
System.out.println();
}
}
}
}
for (n=2;n<=100;n++
){
for(n=2;n<=100;n++){ for(i=2;i<n;i++){//第二层循环,
外层循环是2-100每个数循环代入,
内层循环是判断是否为素数。
内层判断有好多方法,我现在分析用boolean开关来实现的办法。
开始判断前先定义一个boolean默认变量为真,进入if判断里面时,说明已经有一个数可以被整除,则该数不是素数,同时break结束语句,进入上一层下一个判断。
但是输出时,我们要注意下,输出在第二层里面的话,如上层会出现什么结果 ,举例,要判断5是否是质数时,会先从2,开始判断,5%!=0,结束,输出n值,但实际要求所有循环判断结束后才输出n值,结果如图
所以,输出语句应该在外层循环中,换行也应在外层循环中。
代码如下
public class PrimeNumber{
public static void main(String[] args){
int n,i,j=0;
System.out.println("100以内的素数:");
for(n=2;n<=100;n++){
boolean flag=true;
for(i=2;i<n;i++){//第二层循环,
if(n%i==0){//只要有第一个数被整除,则该数不是素数
flag=false;
break;
}
}
if(flag){
System.out.print(n+" ");
j++;
if(j%10==0){
System.out.println();
}
}
}
}
}