码迷,mamicode.com
首页 > 其他好文 > 详细

51nod 1181_质数中的质数_筛素数

时间:2017-12-06 21:38:15      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:pre   main   最小   return   turn   筛法   style   ==   素数   

题目描述

如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。


#include <stdio.h>
#define N 1000005
bool notprime[N];
int prime[N], tot, f[N];
int work()
{
    for (int i = 2; i <= N; i++)
    {
        if (!notprime[i])
        {
            prime[++tot] = i;
            f[i] = tot;
        }
        for (int j = 1; j <= tot && i * prime[j] <= N; j++)
        {
            notprime[i * prime[j]] = 1;
            if (i % prime[j] == 0) break;
        }
    }
    return 0;
}
int main()
{
    int n;
    scanf("%d", &n);
    work();
    for (int i = n; ; i++)
    {
        if (!notprime[i] && !notprime[f[i]])
        {
            printf("%d\n", i);
            break;
        }
    }
    return 0;
}

 

51nod 1181_质数中的质数_筛素数

标签:pre   main   最小   return   turn   筛法   style   ==   素数   

原文地址:http://www.cnblogs.com/nidhogg/p/7994622.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!