[题目描述]
求 11 到 n 之间(包括 n),既是素数又是回文数的整数有多少个。
输入:
一个大于 11 小于 10000 的整数 n。
输出:
11 到 n 之间的素数回文数个数。
样例输入1
23
样例输出1
1
提示:
回文数指左右对称的数,如:11,12121。
来源/分类(难度系数:一星)
完整代码展示:
a=int(input())
b=0
for i in range(11,a+1):
j=2
k=int(pow(i,0.5))
while j<=k:
if i%j==0:
break
j+=1
if j>k:
c=list(str(i))
d=c[:]
d.reverse()
if d==c:
b+=1
print(b)
代码解释:
“a=int(input()) ”,让用户输入值域的右定义值a。
“b=0 ”,设b初始值为0,用于储存素数回文数。
“for i in range(11,a+1):
j=2
k=int(pow(i,0.5))
while j<=k:
if i%j==0:
break
j+=1
if j>k: ”,依次遍历11~a的所有数值,根据素数的定义判断该数是否为素数。
“c=list(str(i))
d=c[:] d.reverse()
if d==c:
b+=1 ”,如果是,则将该数转换为字符串并储存在列表c中。接着复制列表c为d,反转d,判断d与c是否相同。如果相同,则令b+1。
“print(b) ”,打印b的最中结果。
运行效果展示:
(声明:以上内容均为原创)