第一种方法
没有使用判断素数的标记位
无法输出2
**具体原因放在代码的注释里了 **
public class ForTest07
{
public static void main(String[]args){
int flag=0 ; //作为换行的标志位
for(int i=2;i <= 100;i++){ //无法输出2
for(int j=2;j<i;j++){
if(i%j==0){
break; //跳出j的for循环
}
if(j==(i-1)){ //当i=2时 这个判断为if(j==1)但是j不可能等于1,所以就无法输出2
System.out.print(i+" ");
flag++;
if(flag==8){
System.out.println(" "); //每八个换行
flag=0;
}
}
}
}
}
}
第二种方法
使用了素数的标记位
新的一种判断素数的方法,可以输出2了
public class SuShu
{
public static void main(String[]args){
int i,flag=0;
for(i=2;i <= 100;i++){
boolean isSuShu = true; //标记位,是不是素数
for (int j=2;j<i ;j++ )
{
if(i%j==0) //如果可以整除,那就不是素数
{
isSuShu = false;
break;
}
}
if(isSuShu==true){
System.out.print(i+" ");
flag++;
if(flag==8){ //控制8个一换行
System.out.println(" "); //if(flag%8==0)
flag=0;
}
}
}
}
}