2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - D. 质数
生活随笔
收集整理的這篇文章主要介紹了
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 Falsereturn Trueif __name__ == '__main__':num = 2primer_num = list()while len(primer_num) < 2019:if is_primer(num):primer_num.append(num)num += 1print(primer_num[-1])總結
以上是生活随笔為你收集整理的2019年第十届蓝桥杯 - 省赛 - C/C++大学C组 - D. 质数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode Algorithm 2
- 下一篇: 2019年第十届蓝桥杯 - 省赛 - J