2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - D. 质数
Posted Alex_996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - D. 质数相关的知识,希望对你有一定的参考价值。
Ideas
本来一开始想到的是质数筛,但是埃式筛是用来筛选 n 以内的所有质数,并不能找到第 n 个质数,除非找到一个足够大的 n 能够把第 2019 个质数包含进去。
可能质数筛还有升级,能够用来找到第 n 个质数,挖个坑,后面研究一下。
所以这题就用来最原始的方法:通过一个函数 is_primer()
来判断一个数是不是质数,逻辑就是从2开始检查,一直到根号n为止,如果发现n的约数,那么就说明n不是质数。
Code
Python
def is_primer(n):
for i in range(2, int((n ** 0.5) + 1)):
if n % i == 0:
return False
return True
if __name__ == '__main__':
num = 2
primer_num = list()
while len(primer_num) < 2019:
if is_primer(num):
primer_num.append(num)
num += 1
print(primer_num[-1])
以上是关于2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - D. 质数的主要内容,如果未能解决你的问题,请参考以下文章
2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - F. 旋转
2019年第十届蓝桥杯 - 省赛 - C/C++大学A组 - G. 日期问题