设计一个程序,求出200~1000之间的所有素数,要求每行输出5个素数.判断一个整数是否为素数用一个函数来实

问题描述:

设计一个程序,求出200~1000之间的所有素数,要求每行输出5个素数.判断一个整数是否为素数用一个函数来实
1个回答 分类:综合 2014-12-06

问题解答:

我来补答
筛法求素数,速度超快.public class SievePrime {
\x09
\x09static int maxNumber = 1000;
\x09
\x09public static void main(String arg[]){
\x09\x09
\x09\x09boolean isPrime[] = new boolean[maxNumber+1];
\x09\x09
\x09\x09// 首先假定所有的数都是素数                                 
\x09\x09for (int i = 2; i< maxNumber+1; i++)
\x09\x09\x09isPrime[i] = true;
\x09\x09
\x09\x09for (int i = 2; i< (int)Math.sqrt(maxNumber); i++){
\x09\x09    if (isPrime[i]){
\x09\x09        
\x09\x09        //把当前素数的整数倍筛掉
\x09\x09        for (int j = i*i; j<maxNumber+1; j=j+i)
\x09\x09        \x09isPrime[j] = false;//j ∈ {i^2, i^2+i, i^2+2i, ..., limit}
\x09\x09    }
\x09\x09}
\x09\x09
\x09\x09
\x09\x09//显示最后结果
\x09\x09///*
\x09\x09int n = 0;
\x09\x09for (int i = 200; i< maxNumber+1; i++)
\x09\x09    if (isPrime[i]) {
\x09\x09    \x09 
\x09\x09    \x09if (n%5 == 0)
\x09\x09    \x09\x09System.out.println();
\x09\x09    \x09System.out.print(i+"\t");
\x09\x09    \x09n++;
\x09\x09    }
\x09  //*/
\x09}
}
 
 
展开全文阅读
剩余:2000