public class lianxi02 {
public static void main(String[] args) {
int count = 0;
for(int i=101; i<200; i+=2) {
boolean b = false;
for(int j=2; j<=Math.sqrt(i); j++)
{
if(i % j == 0) { b = false; break; }
else { b = true; }
}
if(b == true) {count ++;System.out.println(i );}
}
System.out.println( "素数个数是: " + count);
}
}
输出答案是:101
102
103
……200
素数的个数是100
而换这种方法:
import java.math.*;
import java.util.*;
public class Test
{
public static void main(String[] args)
{
int x=0;
Vector v = new Vector();//集合,用来装所有的素数
for(int i=101;i<=200;i++)
{
boolean b=true;//标签为b为真
double m = Math.sqrt(i);
for(int j=2;j
if(i%j==0)//求余数是否为0
{
b = false;//如果为0, 将标签设置为false
break; //可以整除就跳出这个循环
}
}
if(b==true)//
{
v.add(i);//将符合要求的i加到集合里 x++; // 素数个数加1
} }
System.out.println("100到200中间有 "+x+" 个素数"); System.out.println("素数为:/n"+v);
}
}
就可以输出正确答案,这是为什么?