-
题目链接:数素数 (20)
-
题目描述
令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出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 <iostream> #include <stdio.h> #include <cmath> #include <vector> using namespace std; bool isprime(int n) { if(n<=1) return false; int sqr = int(sqrt(n*1.0)); for (int i=2;i<=sqr;i++) if(n%i == 0) return false; return true; } int main() { int f,l; //first,last cin>>f>>l; int cnt = 0; int t = 1; while(cnt<l) { if(isprime(t)) { cnt++; if(cnt>=f) { cout<<t; if(cnt-f!=0 && (cnt-f+1)%10==0) cout<<endl; else if(cnt<l) cout<<" "; } } t++; } return 0; }
-
说明:
- 这个素数判断算法可以记一下,从2到sqrt(N)遍历
- 注意一下输出格式
PAT乙级 —— 1003 数素数 (20)
最新推荐文章于 2021-02-25 15:27:10 发布