PAT-乙级-1013.数素数

♀尐吖头ヾ 提交于 2020-01-23 20:39:12

题目

令Pi表示第i个素数。现任给两个正整数M <= N <= 10^4,请输出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 <vector>
#include <cmath> 
using namespace std;
int judge(int n)//判断是否是素数 
{
	for(int i=2;i<=sqrt(n);i++)
		if(n%i==0)
			return 0; 
	return 1;
}
int main()
{
	int m,n;//输入范围 
	int count=0;//计数器 
	int num=0;//换行控制器 
	vector<int> v;//设置动态数组 
	cin>>m>>n;
	for(int i=2;count<=n;i++)//添加素数至动态数组中 
	{
		if(judge(i)==1)
		{
			count++;
			v.push_back(i);
		}
	}
	for(int i=m-1;i<=n-1;i++)//输出范围内的素数 
	{
			num++;
			if(num%10==0)
			{
				cout<<v[i]<<endl;
			}
			else
			{
				if(i==n-1)//注意:最后一行的最后一个数字后面不能加上空格 
					cout<<v[i];
				else
					cout<<v[i]<<' '; 
			}
				
	} 
	return 0;
} 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!