纯质数
题目描述
如果一个正整数只有1和它本身两个因数,称这个正整数为质数,前几个质数是:2、3、5、7、11、13、17、19、23、。。。。
若一个质数拆开它每一位上的数字,得到的一位数全都是质数的话,成为“纯质数”,如:2、3、5、7、23、37。而11、13、17、19、29、31则不能称为纯质数,当然,25、27、35、57也不能称为纯质数。
请问,从1到给定的n(n为正整数)中,有多少个纯质数?
输入描述
给定一个正整数n(n<10000)
输出描述
输出1到n中(包括1和n)的纯质数个数
样例输入
20
样例输出
4
代码详解
展开查看
n = int(input()) count = 0 def isPrime(n): if n == 1: return False else: for i in range(2,n): if n % i == 0: return False return True def isPurePrime(n): n = str(n) ls = ['2','3','5','7'] for i in n: if i not in ls: return False return True for i in range(1, n+1): if isPrime(i) and isPurePrime(i): count = count +1 print(count)
运行结果
展开查看
20 4