200内的素数是200内的一个数除以他的一半以内的数(100以内)后,看是否能被整除。所以:for(i=2;i<=j/2;i++)
{
if(j%i==0) //不是质数,跳出
break;
}
if(i>j/2)
{
System.out.println(j); //i>j/2表示100内已经没有该数的约数了,100——200之间一定没有约数,不检验。然后输出。
}
你想啊,比如说j=10,他不是素数,因为
当i=5的时候, 5*2=10,不可能再有比5大的 i 满足条件了。
比一个数的一半还大的数是不能满足条件的,因为除了1没有比2还小的正整数了。
所以我们只需要比较到 i=j/2 就可以了,往后不能再出现组合了
public class PrimeNumber
{
public static void main(String[] args)
{
System.out.println("200以内的素数有:");
int i=2,j=0,m;
label1:
for(i=2;i<200;i++)
{
for(m=2;m<=(int)(Math.ceil(Math.sqrt(i)));m++)
{
if(i%m==0)
}
System.out.print(i+"\t");
j++;
if(j%10==0)
System.out.println();
}
}
}