zero
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
统计
随笔 - 2
文章 - 0
评论 - 2
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2007年2月 (2)
搜索
最新评论
1. re: HelloWorld~
HelloWorld也可以有很多写法,可以尝试一下
--dreamstone
2. re: 求1亿以下的质数
不错,继续加油。
--dreamstone
阅读排行榜
1. 求1亿以下的质数(394)
2. HelloWorld~(128)
评论排行榜
1. 求1亿以下的质数(1)
2. HelloWorld~(1)
2007年2月18日
求1亿以下的质数
public
class
Prime
{
public
static
void
main(String[] args)
{
long
timeStart
=
System.currentTimeMillis();
int
[] prime_array
=
new
int
[
10000
];
//
用来保存10万以下的质数(共9592个)
prime_array[
0
]
=
3
;
prime_array[
1
]
=
5
;
int
i,primeId
=-
1
,m
=
2
,prime;
//
System.out.println(2);
//
质数2直接打出^_^
for
(
int
a
=
3
; a
<=
100000
; a
+=
2
)
{
if
(m
*
m
<
a)
{
//
避免使用sqrt()
m
++
;
}
for
(i
=
0
;(prime
=
prime_array[i])
<=
m;i
++
)
{
if
(a
%
prime
==
0
)
{
break
;
}
}
if
(prime
>
m)
{
prime_array[
++
primeId]
=
a;
//
10万以下的质数存起
//
System.out.print(a+" ");
}
}
System.out.println(
"
计算10万以下的质数(共
"
+
(primeId
+
2
)
+
"
个)耗时
"
+
(System.currentTimeMillis()
-
timeStart)
+
"
毫秒.
"
);
int
maxNum
=
100000000
;
for
(
int
a
=
100001
; a
<=
maxNum; a
+=
2
)
{
if
(m
*
m
<
a)
{
//
避免使用sqrt()
m
++
;
}
for
(i
=
0
;(prime
=
prime_array[i])
<=
m;i
++
)
{
if
(a
%
prime
==
0
)
{
break
;
}
}
if
(prime
>
m)
{
++
primeId;
//
System.out.print(a+" ");
}
}
System.out.println(maxNum
+
"
以下共
"
+
(primeId
+
2
)
+
"
个质数.
"
);
System.out.println(
"
耗时
"
+
(System.currentTimeMillis()
-
timeStart)
+
"
毫秒.
"
);
}
}
posted @
2007-02-18 21:20
zero 阅读(394) |
评论 (1)
|
编辑
收藏
HelloWorld~
今天开始看java,我写的第一个东东~
1
public
class
HelloWorld
{
2
public
static
void
main(String[] args)
{
3
System.out.println(
"
Hello World!
"
);
4
}
5
}
6
posted @
2007-02-18 21:17
zero 阅读(128) |
评论 (1)
|
编辑
收藏
仅列出标题