int i,j;
i=1;
System.out.println("1是素数");
for(;i<=100;i++){
j=1;
for(;j<=i/2;j++)
{
if(i%j==0){j=101;}
}
if(j!=101) System.out.println(i+"is 素数");
}
i=1;
System.out.println("1是素数");
for(;i<=100;i++){
j=1;
for(;j<=i/2;j++)
{
if(i%j==0){j=101;}
}
if(j!=101) System.out.println(i+"is 素数");
}
public static final boolean PRINT=true; public static void main(String[] args) {
int n=1000000;//多少以内
long start=System.currentTimeMillis();
BitSet b=new BitSet(n);
int count=0;
int i; for(i=2;i<=n;i++)
b.set(i);
i=2;
while(i*i<=n)
{
if(b.get(i))
{
if(PRINT) System.out.println(i);
count++;
int k=2*i;
while(k<=n)
{
b.clear(k);
k+=i;
}
}
i++;
} while(i<=n)
{
if(b.get(i))
{
if(PRINT) System.out.println(i);
count++; }
i++;
}
long end=System.currentTimeMillis();
System.out.println(count+" primes");
System.out.println((end-start) + " milliseconds");
}}
java里经典的计算素数的程序
to:eaglecoody 你是用C语言编的程序吧,我斗胆说一下你的程序,for(;i<=100;i++)是不是应该改为for(i=2;i<=100;i++),因为刚开始外部变量是1,在循环里面初值还是1呀,不会自动加1的。还有一个问题就是if(i%j==0){j=101};是不是有点问题,首先2,3都是素数,但是不能显示出来呀。
public class PrimeNumber
{
public static void main(String[] args)
{
int n = 1000; //计算1-n之间的素数
System.out.println("素数如下:");
boolean isPrime = false;
for (int i=1; i<=n; i++)
{
isPrime = true;
for (int j=2; j<=i/2; j++)
{
if (i%j==0)
{
isPrime = false;
break;
}
}
if(isPrime == true)
{
System.out.println(" " + i);
}
}
}
}