土人的家
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计信息
Posts - 15
Stories - 0
Comments - 0
Trackbacks - 0
常用链接
我的随笔
我的评论
我的参与
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
DP(4)
(rss)
Greedy(2)
(rss)
Math(2)
(rss)
Search(6)
(rss)
随笔档案
2009年12月 (5)
2009年11月 (10)
搜索
最新评论
阅读排行榜
1. MatchString(185)
2. TheSumOfLuckyNumbers(162)
3. CollectingMarbles(139)
4. ProperDivisors(138)
5. IdealString(137)
评论排行榜
1. TheSumOfLuckyNumbers(0)
2. IdealString(0)
3. AvoidingProduct(0)
4. CollectingMarbles(0)
5. MatchString(0)
SmoothNumbersHard
SRM 388 Level2 1000
http://www.topcoder.com/stat?c=problem_statement&pm=8565&rd=11122
给定N和K,返回N中最大素数因子小于等于K的数字个数
解法与素数的计算流程相通
自下向上,只是对每个数多记录一次其最大素数因子
1
mport java.util.
*
;
2
import
java.util.regex.
*
;
3
import
java.text.
*
;
4
import
java.math.
*
;
5
import
java.awt.geom.
*
;
6
7
public
class
SmoothNumbersHard
8
{
9
public
int
countSmoothNumbers(
int
N,
int
k)
10
{
11
boolean
[] prime
=
new
boolean
[N
+
1
];
12
int
[] divider
=
new
int
[N
+
1
];
13
Arrays.fill(prime,
true
);
14
Arrays.fill(divider,
1
);
15
for
(
int
i
=
2
; i
<=
N;
++
i)
{
16
if
(prime[i])
{
17
divider[i]
=
i;
18
for
(
int
j
=
2
; i
*
j
<=
N;
++
j)
{
19
prime[i
*
j]
=
false
;
20
divider[i
*
j]
=
i;
21
}
22
}
23
}
24
int
ans
=
0
;
25
for
(
int
i
=
1
; i
<=
N ;
++
i)
{
26
if
(divider[i]
<=
k)
27
ans
++
;
28
}
29
return
ans;
30
}
31
posted on 2009-11-08 19:54
jav7er
阅读(65)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理