科丁乐20200223 模拟赛第二题

科丁乐20200223 模拟赛第二题

题目:

2020年新年伊始,新型冠状病毒开始在中国多地肆虐,疫情防控形势复杂严峻。

小科则认为2020年是一个不够幸运的年份,而他又发现2020这个数字不是一个质数,所以他认为如果年份是质数的话,那么这一年就是一个“Lucky year”,例如第一个Lucky year是公元2年,第二个Lucky year是公元3年,然后是公元5年…现在小科想知道第n个Lucky year是公元多少年?以及它和下一个lucky year相隔多少年?请你帮助小科找到答案。

解析:

这道题

很简单

难度较低

但是首先

至少要会判断素数

一个一个判断

最后

再输出就可以了

可以定义一个变量ans

扫描二维码关注公众号,回复: 9596686 查看本文章

用来当作计数器

再开一个死循环

每发现一个素数

ans就++

并且

保存这个素数

直到

ans==n

退出循环

输出就可以了

但是容易

爆掉

这道题的数据量

不大

所以可以

打表策略

下面附上代码

不过不是打表

如要打表

请自己写:

#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
int main()
{
	int sum=0,n,i=2,L=0,R=2;
	cin>>n;
	n++;
	bool flag=true;
	while(sum>-1)
	{
		if(i==2) 
		{
			sum++;
			i++;
			continue;
		}
		if(i!=2&&i%2==0)
		{
			i++;
			continue;
		}
		flag=true;
		for(int j=2;j<=i-1;j++)
		{
			if(i%j==0)
			{
				flag=false;
				break;
			}
		}
		if(flag==true)
		{
			L=R;
			R=i;
			sum++;
		} 
		if(sum==n) break;
		i++;
	}
	cout<<L<<" "<<R-L;
	return 0;
}
发布了24 篇原创文章 · 获赞 0 · 访问量 612

猜你喜欢

转载自blog.csdn.net/zliang_ma/article/details/104481794