PAT B1019判断是否为素数

输入样例

5 27

输出样例

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

总结

由于不知道第10000个素数是多大,故num数组开得大一些
注意格式要求,空格处可以用’#'替代,看看哪里打了空格

#include <stdio.h>
#include <math.h>


int isPrime(int n)
{
    if(n<=1)return 0;// 1不是素数
    int sqr=(int)sqrt(1.0*n);//sqrt()为math.h的函数且参数需要为double型
    for(int i=2;i<=sqr;i++)
    {
        if(n%i==0)return 0;//不是素数
    }
    return 1;//是素数
}


int main()
{
    //freopen("input.txt","r",stdin);
    int m,n;
    int count=0;
    scanf("%d %d",&m,&n);
    int num[1000000]={0};//定义一个数组
    for(int i=1;i<=1000000;i++)
    {
        if(isPrime(i))
        {
            num[count++]=i;//第count个素数为i;
        }
        if(count==n)break;
    }
    count=0;
    for(int i=m-1;i<n;i++)
    {
        printf("%d",num[i]);
        count++;
        if((count<10)&&(i<n-1))printf(" ");
        else if(count==10)
        {
            count=0;
            printf("\n");
        }
    }
}

发布了54 篇原创文章 · 获赞 1 · 访问量 519

猜你喜欢

转载自blog.csdn.net/weixin_43370733/article/details/103773614
今日推荐