这题很明显得用素数筛法打出一个素数表 模拟一下求出第n个素数就可以了
水题啊。。。。
#include <iostream> #include<cstdio> #include<cstring> using namespace std; #define max 1000005 bool isprime[max]; void getprime() { long long i,j; memset(isprime,1,sizeof(isprime)); isprime[1]=0; isprime[0]=0; for(i=2; i<max; i++) if(isprime[i]) for(j=i*i; j<max; j+=i) isprime[j]=0; } int main() { getprime(); int a,d,n; while(~scanf("%d%d%d",&a,&d,&n)&&(a+d+n)) { int i,sum=0; for(i=a; sum<n; i+=d) if(isprime[i]) { sum++; if(sum==n) break; } printf("%d\n",i); } return 0; }
时间: 2024-10-26 14:11:42