PAT Basic 1013. 数素数 (20)(C语言实现)

来源:互联网 发布:ppt2010软件官方下载 编辑:程序博客网 时间:2024/06/05 02:28

题目

令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

思路

也没有什么难度,注意下什么时候开始输出,什么时候换行。

和1007. 素数对猜想 (20) (C语言实现)一样,验证素数的时候,利用前面已经算出的素数,能够将验证次数降到最低。

代码

最新代码@github,欢迎交流 ^_^

#include <math.h>#include <stdio.h>int main(){    int M, N;    scanf("%d %d", &M, &N);    int primes[10000];    for(int n = 2, count = 0; count < N; n++)    {        int iprime = 1;        for(int j = 0; count > 0 && primes[j] <= sqrt(n); j++)            if(n % primes[j] == 0)                iprime = 0;        if(iprime) primes[count++] = n;    }    for(int i = M; i < N; i++)    {        printf("%d", primes[i - 1]);        printf((i - M + 1) % 10 ? " " : "\n");    }    printf("%d", primes[N - 1]);    return 0;}
阅读全文
0 0
原创粉丝点击