PAT (Basic Level) Practice (中文)1013 数素数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40625778/article/details/86664871

1013 数素数

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

输入格式:

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

输出格式:

输出从 P​M到 P​N的所有素数,每 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>
#include<math.h>
int fun(int n)
{
  int i;
  int l=1;
  int t=sqrt(n);
  for(i=2;i<=t;i++)
  {
      if(n%i==0){l=0;break;}
  }
  return l;
}
int main()
{
    int M,N;
    scanf("%d %d",&M,&N);
    int arr[100];
    int t=0;
    int i;
    int temp;
    int l=0;
    for(i=2;;i++)
    {
        temp=fun(i);
        if(temp==1)
        {
           l++;
           if(l>=M&&l<=N) arr[t++]=i;
           if(l>N) break;
        }
    }
    for(i=0;i<t;i++)
    {
        if(((i+1)%10==0)&&i!=t-1)printf("%d\n",arr[i]);
        else if(i==t-1) printf("%d\n",arr[i]);
        else printf("%d ",arr[i]);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40625778/article/details/86664871