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
#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;
}
总结以上是内存溢出为你收集整理的PAT (Basic Level) Practice (中文) 1013 数素数 (20 分)(C++)全部内容,希望文章能够帮你解决PAT (Basic Level) Practice (中文) 1013 数素数 (20 分)(C++)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)