//Memory Time
//164k 125MS
题意分析:输入a,d,n. a是第一个元素,d是公差,求等差数列里第n个素数。
关键:知道素数如何判断。
注意:自己定义素数判断函数是,如果用bool,在提交时会出现compile error。
代码:
#include<stdio.h>
#include<stdlib.h>
int isprim(int n);
int main(){
int a,d,n,i,temp,flag;
while(1)
{
flag=0;
scanf("%d%d%d",&a,&d,&n);
if(a==0&&d==0&&n==0)
break;
if(d==0&&isprim(a)==0)
break;
for(i=0;flag!=n;i++)
{
temp=a+i*d;
if(isprim(temp))
flag++;
}
printf("%d\n",temp);
}
//system("pause");
return 0;
}
int isprim(int n)
{
int m,flag=1;
if(n==2)
return 1;
else if(n==1||n%2==0)
return 0;
else
{
for(m=3;m*m<=n;m+=2)
if(n%m==0)
{
flag=0;
break;
}
}
if(flag)
return 1;
else
return 0;
}