PAT(乙级)1013. 数素数
2016-06-23 20:08
295 查看
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:
输出样例:
#include <cmath>
using namespace std;
bool isPrime(int n)
{
if (n < 2)
{
return false;
}
if (n == 2)
{
return true;
}
for (int i = 2; i <= sqrt(n); ++i)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
int main()
{
int m, n;
cin >> m >> n;
int no = 0;
int count = 0;
for (int i = 2; i <= 110000; ++i)
{
if (isPrime(i))
{
no++;
if (no >= m && no <= n){
if (count % 10 == 0){
cout << i;
}
else{
cout << " " << i ;
}
++count;
if (count % 10 == 0)
{
cout << endl;
}
}
}
}
return 0;
}
分析:最开始准备打表做,但发现一个测试点超时了,所以直接在间距内进行遍历判断并输出。
输入格式:
输入在一行中给出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 8997 101 103#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n)
{
if (n < 2)
{
return false;
}
if (n == 2)
{
return true;
}
for (int i = 2; i <= sqrt(n); ++i)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
int main()
{
int m, n;
cin >> m >> n;
int no = 0;
int count = 0;
for (int i = 2; i <= 110000; ++i)
{
if (isPrime(i))
{
no++;
if (no >= m && no <= n){
if (count % 10 == 0){
cout << i;
}
else{
cout << " " << i ;
}
++count;
if (count % 10 == 0)
{
cout << endl;
}
}
}
}
return 0;
}
分析:最开始准备打表做,但发现一个测试点超时了,所以直接在间距内进行遍历判断并输出。
相关文章推荐
- Python匹配对象与索引使用
- iOS 获取子视图在父视图中的坐标
- Firefox 新增容器标签:可同时登录多个用户
- 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目\Java大学B组\3题 x的x次幂等于10
- ZOJ 3487A - Ordinal Numbers
- Leetcode 132. Palindrome Partitioning II
- project.pbxproj
- java《前世今生》
- IP聚合
- 对action中的某个方法进行校验
- 检测一般的手势Detecting Common Gestures——翻译自developer.android.com Training
- 2016/6/23
- BigDecimal类
- math-上花括号或下花括号
- Problem D
- mysql事务处理用法与实例详解
- unity3d屏蔽Windows10输入法
- TCP可靠传输的实现
- XRecyclerView应用于Fragement中 转换时发生View紊乱
- 第十五周项目二(2)-洗牌(采用STL的 random_shuffle 算法)