文章

13

粉丝

120

获赞

4

访问

15.2k

头像
素数 题解:
P1375 北京航空航天大学机试题
发布于2023年5月4日 19:09
阅读数 1.1k

在素数上加了一些限制,只需要在筛选质数的时候加上一些限制条件即可

限制条件

	auto cal = [&](int x) -> bool
	{
		if(x < 2 or x%10 != 1)return false;
		for(int i = 2;i < x;i++)
		{
			if(x % i == 0)return false;
		}
		return true;
	};

输出的需要注意的地方,最后一个不能留空,空的时候输出-1

	if(!vec.size())
	{
		cout << -1;
		return;
	}
	for(int i = 0;i<vec.size();i++)
	{
		cout << vec[i];
		if(i!=vec.size()-1)cout << " ";
	}

AC代码

void slove()
{
	auto cal = [&](int x) -> bool
	{
		if(x < 2 or x%10 != 1)return false;
		for(int i = 2;i < x;i++)
		{
			if(x % i == 0)return false;
		}
		return true;
	};
	cin >> n;
	vector<int> vec;
	lp(i,3,n-1)
	{
		if(cal(i))vec.push_back(i);
	}
	if(!vec.size())
	{
		cout << -1;
		return;
	}
	for(int i = 0;i<vec.size();i++)
	{
		cout << vec[i];
		if(i!=vec.size()-1)cout << " ";
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发