POJ3006

来源:互联网 发布:淘宝现在交易额多少了 编辑:程序博客网 时间:2024/06/13 11:03

问题描述:狄利克雷定理的有关问题,具体问题是给定一个起始值a,累加数d以及需要寻找的第n位质数,最后输出第n位质数的值。
解题思路:先按步骤计算出起始值后面的一些位数,然后判断计算出来的各位数是否是质数,若是则放入一个数组中,最后在这个数组中找到那个第n位质数
code(C)

#include<stdio.h>#include<math.h>//判断某个数是否为质数的函数,可收藏今后套用bool isPrime(int num){    int m;    if(num==1) return false;    if(num==2) return true;    for(m=2;m<(int)sqrt((double)num);m++){        if(num%m==0)            break;    }    if(num%m==0)        return false;    else        return true;}int main(){       int i,j,a,d,n,t[215];    int s[3000];    while(1){        i=1;j=1;        scanf("%d%d%d",&a,&d,&n);        if(a==0&&d==0&&n==0)        return 0;        while(j<=n){        s[i]=a+d*(i-1);        if(isPrime(s[i])){            t[j]=s[i];            j++;        }        i++;        }    printf("%d\n",t[n]);    }}
0 0
原创粉丝点击