Dirichlet's Theorem on Arithmetic Progressions--POJ 3006
1、题目类型:数论。
2、解题思路:水题。
3、实现方法:
#include<iostream>
using namespace std;
#define Max 1000010
bool prime[Max],flag;
int map[220],cnt;
void BuildTable()
{
int i,j;
prime[1]=false;
prime[2]=prime[3]=true;
for(i=2;i<1001;i++)
{
for(j=2;j*i<Max;j++)
{
prime[i*j]=false;
}
}
}
int main()
{
int a,d,n,tmp;
memset(prime,1,sizeof(prime));
BuildTable();
while(cin>>a>>d>>n && (a||d||n))
{
cnt=0;
tmp=a;
while(cnt!=n)
{
if(prime[tmp])
map[++cnt]=tmp;
tmp+=d;
}
cout<<map[n]<<endl;
}
return 1;
}