循环素数

题目内容:
数字197可以被称为循环素数,因为197的三个数位循环移位后的数字:197,971,719均为素数。100以内这样的数字包括13个,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整数n以内一共有多少个这样的循环素数。

输入格式:
一个正整数n。

输出格式:
n以内循环素数的数目。

输入样例:
100

输出样例:
13

# -*- coding: utf-8 -*-
import math
def isprime(n):
    #判断素数,若是,返回True;否则,返回False

    for i in range(2,int(math.sqrt(n))+1):
        if n%i == 0:
            return False
    return True

def reverse_num(n):
    d = 0
    while n:
        d = d*10 + n % 10
        n = n //10
    return d

###print(reverse_num(700))

def loop_prime(n):
    if isprime(n):
        s = str(n)
        t = " "
        while t != str(n):
            t = s[1:] + s[0]
            if isprime(int(t)):
                s = t[:]
            else:
                return False
        return True
    else:
        return False

###print(loop_prime(101))           

num = eval(input("num= "))
cnt = 0
for n in range(2,num+1):
    if loop_prime(n):
        cnt += 1
        print(n)
    else:
        continue

print(cnt)  

这里写图片描述

阅读更多
文章标签: isprime
上一篇计算并输出每行字符串的字母值
下一篇time模块有关
博主设置当前文章不允许评论。

没有更多推荐了,返回首页

关闭
关闭
关闭