您的位置:首页 > 其它

JOJ2573:Product of two primes

2011-11-20 19:15 260 查看
传送门:http://acm.jlu.edu.cn/joj/showproblem.php?pid=2573

一道求素数的题,因为范围只有20000,可以先把20000以内的符合的预处理出来,预处理加点小技巧,详细见代码。

代码:

#include <cstdio>
#include <cstring>
using namespace std;

int prime[20000];
int ans[20000];

int main()
{
memset(prime, 0, sizeof(prime));
for (int i = 2; i < 200; ++i)                       //因为是20000以内的,所以处理到200就够了。
for (int j = i; j * i <= 20000; ++j)            //按上限枚举
prime[i * j] = 1;
for (int i = 2; i < 200; ++i)
for (int j = i; j * i <= 20000; ++j)
if (!prime[i] && !prime[j])
ans[i * j] = 1;
for (int i = 10000; i < 20000; ++i)
if (ans[i])
printf("%d\n", i);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: