用python写一段程序:反素数(逆同拼写的素数)是指一个将其逆向拼写后也是一个素数的非回文数。例如
121是一个素数,逆向拼写成112也是一个素数。
# 定义函数判断素数
def is_prime(n):
if n <= 1:
return False
for i in range(2, n): # 注意取值范围,从2开始到n-1即可。
if n % i == 0: # 若有其他因子,证明不是素数,返回False
return False
return True # 没有其他因子,证明是素数,返回True
# 输入要判断的正整数n
n = int(input("Please input a positive integer:"))
# 判断正反拆解后的字符串是否都为素数
if is_prime(int(str(n)[::-1])) and is_prime(n): # 判断前后字符串转化的int型是否都为素数 [::-1]表示将字符串反序排列 例如'123'->'321'
print("%d is a reverse prime." % n) # 都是就输出反向拆解的字符串也都是一样的情况。 例如121->112都时121既是正常的也就反序也相当于原来的情况。所以就会打印“%d is a reverse prime.”% n) 这里用%d表明用法中会有一位int型变量代入进去。而加上()表明这里会有多位int型变量代入进去。而上面print中%d表明要代入一位int型变量而它就在最后面所以用n代入即可。
# 否则就不满足123->321 123仍然相当于123 所以不会打印“%d is a reverse prime.” % n) 相当于else语法
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!