专栏文章

B4046 [语言月赛 202410] 寻找质数题解

题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minnq3wj
此快照首次捕获于
2025/12/02 05:24
3 个月前
此快照最后确认于
2025/12/02 05:24
3 个月前
查看原文
一、核心考点:判断质数。
二、问题分析:对每个数查看是否是质数,是否取余m等r。
三、代码实现与解析:
CPP
#include <bits/stdc++.h>
using namespace std;
long long n,m,r,k,cnt;
//判断是否是质数
bool check(int a)
{
    //注意1不是质数,也不是合数
	if(a==1)return false; 
	if(a>=2&&a<=3)
	{
		return true;
	}
	for(int i=2;i<a;i++)
	{
		if(a%i==0)return false;
	}
	return true;
}
int main()
{
	cin>>n>>m>>r>>k; 
	for(int i=n;i>=1;i--)
	{
        //如果符合孤独数
		if(check(i)==true&&i%m==r)
		{
			cnt++;
            //如果是第k个
			if(cnt==k)
			{
				cout<<i;
				return 0;
			}
		}
	}
	cout<<-1;
	return 0;
}
四、时间复杂度:O(n*n)。

评论

0 条评论,欢迎与作者交流。

正在加载评论...