题意解释
题意就是给了3个数,第一个是最开始的第一个数,第二个是每次累加的数,第三个数是表达输出的是生成的数中,包含的素数中的第n个素数。(有点绕,多读几遍题就理解了)
收获
这道题是更大的一个水题,在之前的POJ2739中用到了素数的判别方法,直白的翻译题意就好了。注意0和1不是素数,第一次的WA就这么贡献的。推荐测试下1 1 1这个数据。
AC代码
#include <iostream>
using namespace std;
int if_is_prime_number(int n){
if(n == 0 || n == 1)
return 0;
else{
for (int i = 2;i * i <= n;i++) {
if (n % i == 0) return 0;
}
}
return 1;
}
int main(void){
int a,b,n;
int output = 0;
scanf("%d %d %d",&a,&b,&n);
while (a != 0 && b != 0 && n != 0) {
int i = 0;
while (n > 0) {
if(if_is_prime_number(a + i*b))n--;
output = a + i*b;
/*
cout << "n :" << n << endl;
cout << "judge :" << if_is_prime_number(a + i*b) << endl;
cout << "the number :" << a + i*b << endl << endl;
*/
i++;
}
cout << output << endl;
scanf("%d %d %d",&a,&b,&n);
}
return 0;
}
网友评论