python语言 超级素数

python语言 超级素数
多少超级素数:一个素数依次从低位去掉一位、两位······若所得的数 依旧是素数,如239就是超级素数。试求100~9999之内有多少个 超级素数,以及这些超级素数之和

# -*-coding:utf8-*-
#py3
import math
def Prime(n):  #判断n是不是素数
    if n==1:
        return False
    if n==2:
        return True
    t=int(math.sqrt(n)+1)
    for i in range(2,t):
        if n%i==0:
            return False
    return True

if __name__=='__main__':
    s=0 #素数和
    k=0 #个数
    for i in range(100,10000):
        t=i
        while t>1 and Prime(t):#t若是素数且大于1
            t=int(t/10)    #继续去掉低一位.直至t=0或t不是素数
        if t==0:   #该数是所求
            print(i)#测试使用,仅供观察,可以去掉
            s+=i #求和
            k+=1 #计数器加1
    print(s,k)   #输出结果

结果:

温馨提示:答案为网友推荐,仅供参考