JOJ2573:Product of two primes

来源:互联网 发布:js modem 电话 编辑:程序博客网 时间:2024/05/18 00:44

传送门: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;}


原创粉丝点击