跳转至

纯质数

题目描述

如果一个正整数只有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