1013. 数素数

来源:互联网 发布:mac os x 升级系统 编辑:程序博客网 时间:2024/06/03 20:10

一、题目

令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

二、个人理解

此题主要考察素数的算法。


关键点:

  • 时间的限制。需要使用较好的素数算法。
  • 格式化输出。每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

源代码(C):

#include <stdio.h>int isPrime(int number){    int i;    if(number<2) {        return 0;    }    //先判断偶数    if(number==2) {        return 1;    } else if(number%2==0) {        return 0;    }    //只判断奇数    for(i=3; i*i<=number; i=i+2) {        if(number%i==0) {            return 0;        }    }    return 1;}int main(){    int m=0,n=0;    int number=2;    scanf("%d%d",&m,&n);    int i=m;    int count=1;//计数    //格式化输出    while(i<=n) {        if(isPrime(number)==1) {            if(count==i) {                if((i-m+1)%10==0) {                    printf("%d",number);                    printf("\n");                } else if(i==n) {                    printf("%d",number);                } else {                    printf("%d ",number);                }                i++;            }            count++;        }        number++;    }}
原创粉丝点击