输入一个数N(N <= 10^6)
输出>=N的最小的质数中的质数。
20
31
熟悉下质数筛选的做法:
#include <stdio.h> #define N 1000160 typedef __int64 LI; bool f[N+1]={false}; int prime[N+1]; int main(){ int n; scanf("%d",&n); LI cnt=0,i,j; f[1]=true; f[2]=false; for(i=2;i<=N;i++){ if(!f[i]){ cnt++; if(!f[cnt]&&i>=n){ printf("%d\n",i); break; } for(j=i*i;j<=N;j+=i) f[j]=true; } } return 0; }
原文:http://blog.csdn.net/starcuan/article/details/19702003