@2021第十二届蓝桥杯国赛B组
纯质数【python】
题目描述:如果一个正整数只有 11和它本身两个约数,则称为一个质数(又称素数)。
前几个质数是:2,3,5,7,11,13,17,19,23,29,31,37,· · · 。
如果一个质数的所有十进制数位都是质数,我们称它为纯质数。
例如:2,3,5,7,23,37 都是纯质数,而11,13,17,19,29,31不是纯质数。当然 1,4,35也不是纯质数。
请问,在 1 到 20210605中,有多少个纯质数?
思路解析:
1.由于数据量太大,首先要寻找高效的判断素数算法
2.其次,判断纯质数要求对每一数位分离判断,选择怎样的分离方法更加高效
3.分离后对该位数进行判断,是否为质数
4.记录纯质数的个数
话不多说上代码!
质数判断函数
# -*- coding = utf-8 -*-
# @Time : 2021/6/11 10:36
# @Author :超
# @File : 判断纯质数.py
# @Software : PyCharm
def is_prime(x):
if (x == 2) or (x == 3):
return True
elif (x == 1):
return False
elif