您的位置:首页 > 其它

Dirichlet's Theorem on Arithmetic Progressions--POJ 3006

2010-08-18 17:43 513 查看
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
<<endl;
}
return 1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: