PAT (Basic Level) Practice 中文 1013 数素数 20 分C++

1013 数素数 (20 分)

令 P​i表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 P​M到 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

#include

#include

#include

int main()

{

int M = 0,N = 0;

int cnt1 = 1,cnt2 = 0;//cnt1用来记录素数的个数;cnt2用来完成10位换行功能

scanf("%d %d",&M,&N);

if (M == 1)//把2单独考虑,只有2既是偶数又是素数

{

printf("2");

cnt2++;

if (cnt1 == N) return 0;

}

int first = 0;

for (int i = 3; cnt1 <= N; i+=2)//这里只考虑奇数即可

{

int flag = 0;

for (int j = 3; j <= (int)sqrt((double)i); j += 2)//判断是否是素数

{

if (i%j == 0)

{

flag = 1;//非素数

break;

}

}

if (!flag)

{

cnt1++;

if (cnt1 >= M && cnt1 <= N)//把第M~第N个素数打印出来,并控制打印格式

{

cnt2++;

if (cnt2 == 1) printf("%d",i);

else if (cnt2 == 10) { printf(" %dn",i); cnt2 = 0; }

else printf(" %d",i);

}

}

}

return 0;

}

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...