PAT 1013. 数素数 (20)

1013. 数素数 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:
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

#include<stdio.h>
int k[10000]={0};
int sushu(int m)
{
    int i,flag=0;
    if(m==1)
        flag=1;
    for(i=2;i<m;i++)
    {


        if(m%i==0)
        {
            flag=1;
        }
    }
    return flag;
}
    int main()
    {
        int m,n,i,t=0,m2,n2,t2=0;
        //int k[10000]={0};
        scanf("%d %d",&m,&n);
        for(i=1;i<=10000;i++)
        {
            if(sushu(i)==0)
            {
                t++;
            }
            if(t==m){
                m2=i;
                break;
            }
        }
        for(i=1;i<=10000;i++)
        {
            if(sushu(i)==0)
            {
                t2++;
            }
            if(t2==n){
                n2=i;
                break;
            }
        }
        int t3=0;
        //printf("%d %d",m2,n2);
        for(i=m2;i<=n2;i++)
        {
            if(sushu(i)==0)
            {
                t3++;
                k[t3]=i;


            }


        }
        for(i=1;i<=t3-1;i++)
        {
            if(i%10!=0){
            printf("%d ",k[i]);}
            else if(i%10==0)
            {
                printf("%d\n",k[i]);
            }
        }
        printf("%d",k[t3]);
        return 0;

    }


方法很笨也很麻烦,第四个测试点提示运行超时。

猜你喜欢

转载自blog.csdn.net/qq_38290604/article/details/78712846
今日推荐