筛法原理见:
http://blog.csdn.net/a799581229/article/details/37995531
这里就不多说了,水题一个,不过哪个大神能告诉我为什么我这题的要240MS这么多,这题我该如何优化?
#include<iostream>
#include<string>
#define M 1000002
using namespace std;
int prime[M];
void GetPrime() //筛法
{
int i,j;
memset(prime,1,sizeof(prime));
prime[0]=prime[1]=0;
for( i=2;i<=M;i++)
if(prime[i])
{
for( j=i*2;j<=M;j+=i)
prime[j]=0;
}
}
int main()
{
int a,d,n,k,i;
GetPrime();
while(scanf("%d%d%d",&a,&d,&n),a!=0&&d!=0&&n!=0)
{
k=i=0;
while(1)
{
if(prime[a+i*d])
k++;
if(k==n) break;
i++;
}
cout<<a+i*d<<endl;
}
}