循环素数

本文介绍了一种算法,用于找出指定范围内所有循环素数的数量。循环素数是指该数及其所有循环移位均为素数的整数。文章提供了一个Python实现示例,并解释了如何判断一个数是否为循环素数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目内容:
数字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)  

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值