标签: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; }
标签:pre main 最小 return turn 筛法 style == 素数
原文地址:http://www.cnblogs.com/nidhogg/p/7994622.html