欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT (Basic Level) Practice (中文)1013 数素数 C语言版 (20分)

程序员文章站 2024-03-19 08:46:52
...

标题 PAT (Basic Level) Practice (中文)1013 数素数 C语言版

题目
1013 数素数 (20分)
令 P​i​​ 表示第 i 个素数。现任给两个正整数 M≤N≤104​​ ,请输出 P​M​​ 到 P​N​​ 的所有素数。
输入格式:
输入在一行中给出 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
AC代码

#include<stdio.h>
#include<math.h>
int is_prime(int x)//定义判断素数的函数
{
    int b=1;
    if(x<=1||x==4) b=0;
    else
    {
        for(int i=2;i<=sqrt(x);i++)
        {
            if(x%i==0) 
            {
                b=0;
                break;
            }
        }
    }
    return b;
}
main()
{
    int a,b;
    scanf("%d %d",&a,&b);
    int g=0;//计数器
    int h=0;//计数器
    for(int i=2;i<1000000;i++)
    {
        if(is_prime(i)==1 )  
        {
            g++;
            if(g<=b&&g>=a) 
            {
                h++;
                if(h!=1&&h%10!=1) putchar(' ');
                if(h%10==1&&h!=1) putchar('\n');
                printf("%d",i);
            } 
        }
        if(g>b) break;
    }
}