前言
数字197可以被称为循环素数,因为197的3个数位循环移位后的数字197,971,719均为素数。100 以内这样的数字共有13个, 如2、3、5、7、11、13、17,31,37,71、73,79.97。求出任意正整数n以内一共有多少个这样的循环素数。
循环素数是一种特殊的素数,它具有一个有趣的性质:对于其各个数位进行循环移位后的数字仍然是素数。例如,197是一个循环素数,因为它的各个数位循环移位后的数字197、971、719均为素数。在一定范围内,存在着一些这样的循环素数,而我们的目标是找出在给定范围内有多少个这样的循环素数。
接下来的代码将实现一个功能,用于计算在给定范围内循环素数的数量。用户可以输入一个正整数n,程序将返回在1到n范围内的循环素数的个数。
一、循环素数是什么??
循环素数是一种特殊的素数,具有以下性质:
1.素数性质: 循环素数是素数,即只能被1和自身整除的正整数。
2.循环性质: 循环素数的每一位数字循环移位后得到的数字仍然都是素数。例如,对于循环素数197,它的各个数位循环移位后的数字为197、971和719,这三个数字都是素数。
这种特殊性质使得循环素数在数学上具有一定的重要性和研究价值。在计算机科学领域,寻找循环素数的算法也是一个常见的问题,因为它们有时候被用于加密算法等领域。
二、编写代码
1.代码如下
代码如下(示例):
# (7)数字197可以被称为循环素数,因为197的3个数位循环移位后的数字197,971,719均为素数。100 以内这样的数字共有13个,
# 如2、3、5、7、11、13、17,31,37,71、73,79.97。求出任意正整数n以内一共有多少个这样的循环素数。
# 定义一个函数,用于检查一个数字是否为素数
def is_prime(num):
# 如果数字小于2,不是素数
if num < 2:
return False
# 从2到num的平方根遍历,检查是否有除了1和自身的因子
for i in range(2, int(num**0.5) +