编写JAVA程序,计算小于一个整数的全部素数并输出.

 我来答
创作者0rWqsfyJ7v
2020-01-14 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:662万
展开全部
此算法很快,求2,000,000以内的素数个数只要半秒,全部打印也只要5秒。
static
void
testPrime(int
MAX)
{
long
start
=
System.currentTimeMillis();
//int
MAX
=
2000000;
BitSet
count
=
new
BitSet(MAX
+
1);
for
(int
i
=
2;
i
<=Math.sqrt(MAX);
i++)
{
int
val
=
i
*
2;
while
(val
<=
MAX
)
{
if(!count.get(val)){
count.set(val);
}
val
+=
i
;
}
}
int
counter
=
0;
for(int
i=2
;i<=
MAX;i++){
if(!count.get(i)){
System.out.println(i);
counter++;
}
}
long
end
=
System.currentTimeMillis();
System.out.println("testPrime
took
"
+
(end
-
start)
+
"
ms");
System.out.println("sum:"
+
counter);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式