2801 - ab区间所有素数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。

    小智想找出a和b之间的所有素数,想把这些素数都列出来,如果不存在,则用“No“表示。你能编程解决吗?

题目输入

一行:a和b,(0<=a<b<=1000000)

题目输出

一行:所有素数,每个素数后面有一个空格

输入/输出样例

输入格式

1 10

输出格式

2 3 5 7 

C++解答

#include<iostream>
#include<cmath> 
using namespace std;
bool ss(int );
int main()
{
	int n,m,k=0,j=0,l=0;
	cin>>n>>m;
	for(int i=n;i<=m;++i)
	{
		if(ss(i)==0)
		++j;
	}
	for(int i=n;i<=m;++i)
	{
		if(ss(i)==0)
		{
			cout<<i<<" ";
			++l;
	    }
	}
	if(l==0)cout<<"No";
	return 0;
	
}
bool ss(int a)
{
	if(a==1||a==0)return 1;
	else
	{
		int x=2;
	int b=floor(sqrt(a));
	while(x<=b&&(a%x!=0))
	++x;
	if(x>b)return 0;
	else return 1;
	}
}