poj3006---素数筛法
#include <stdio.h> #include <stdlib.h> int tab[1000001];//以后都用宏定义 MAX int main()//如要将包括1000000在内的打表,数组就开大一个 { int a,d,n,i,j; tab[0]=0;tab[1]=0; for(i=2;i<1000001;i++) tab[i]=1; for(i=2;i<=1000000;i++)//个人觉得后面一半没必要遍历,因为二倍一定大于1000000 { if(tab[i] == 1) { for(j=2;j*i<=1000000; j++) { tab[i*j]= 0; } } } while(scanf("%d %d %d",&a,&d,&n) != EOF && n) { int cout=0; for(i=0;cout!=n;i++) { if(tab[a+i*d] == 1) cout++; } printf("%d\n",a+(i-1)*d); } return 0; }