转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299074452
题目大意
狄利克雷基于等差数列的算法原理
设一个等差数列,首元素为a,公差为b
现在要求输入a,b,n ,要求找出属于该等差数列中的第n个素数并输出
//Memory Time //260K 141MS #include<iostream> using namespace std; bool judge_prime(int temp) { int k,flag=1; int num=2; if(temp==2) return true; else if(temp==1||temp%2==0) return false; else { for(k=3;k*k<=temp;k+=2) if(temp%k==0) { flag=0; break; } } if(flag) return true; else return false; } int main(void) { int a,b,n,i,temp; for(;;) { int flag=0; cin>>a>>b>>n; if(b==0&&n==0||a==0||a>9307||b>346||n>210) break; if(b==0&&judge_prime(a)==false) break; for(i=0;flag!=n;i++) { temp=a+i*b; if(judge_prime(temp)) flag++; } cout<<temp<<endl; } return 0; }