PAT 乙级 1013 数素数 (20 分)

1013 数素数 (20 分)

令 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

作者: CHEN, Yue

单位: 浙江大学

时间限制: 200 ms

扫描二维码关注公众号,回复: 8922566 查看本文章

内存限制: 64 MB

代码长度限制: 16 KB

#include<iostream>
#include<cmath>
using namespace std;
int sushu(int x){
    if(x<2)
        return 0;
    int i;
    for(i=2;i<=sqrt(x)+1&&i!=x;i++){
        if(x%i==0){
            return 0;
        }
    }
    if(i>sqrt(x)+1||i==x)
        return 1;
    return 0;
}
int main(){
    int M,N,num,i;
    cin>>M>>N;
    int s[15050];
    int tag=0,flag=1;
    num=1;
    for(i=2;i<150000;i++){
        if(sushu(i)){
            s[num++]=i;
        }
    }
    for(i=M;i<=N;i++){
        if(flag==1){
            printf("%d",s[i]);
            flag=0;
        }
        else
            printf(" %d",s[i]);
        if(i==N)
            break;
        tag++;
        if(tag%10==0){
            cout<<endl;
            flag=1;
        }
    }
    return 0;
}
发布了97 篇原创文章 · 获赞 50 · 访问量 8172

猜你喜欢

转载自blog.csdn.net/qq_43422111/article/details/103129141