赞
踩
反素数,英文称作 emirp(prime(素数)的左右颠倒拼写),是素数的一种。
把一个素数的阿拉伯字数字序列变成由低位向高位反写出来,得到的另一个数还是素数。
例如素数13,反写就是31,它是另一个素数,所以13是一个反素数。这个定义排除了相关的回文素数,因为回文素数反写不是另一个数而是它本身。
最小的几个反素数为:13, 17, 31, 37, 71, 73, 79, 97, 107, 113, 149, 157, 167, 179, 199, ...
编写程序,输入两个数m和n,要求n > m,输出m~n(包含m和n)之间所有的反素数,数之间用空格隔开。
5 50
13 17 31 37
- m, n = map(int, input().split())
-
- def isprime(n): # 判断是否为素数
- if n == 1:
- return False
- for i in range(2, n):
- if n % i == 0:
- return False
- return True
-
- def primal(n): # 判断反写是否为素数
- if str(n) == str(n)[::-1]:
- return False # 判断是否为本身,即回文数
- if isprime(n):
- n = str(n)
- n = n[::-1]
- n = int(n)
- if isprime(n):
- return True
- else:
- return False
-
- for i in range(m, n + 1):
- if primal(i):
- print(i, end=' ')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。