首页 > 试题广场 >

素数回文

[编程题]素数回文
  • 热度指数:15793 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

现在给出一个素数,这个素数满足两点:

1、  只由1-9组成,并且每个数只出现一次,如13,23,1289

2、  位数从高到低为递减或递增,如2459,87631。

请你判断一下,这个素数的回文数是否为素数(13的回文数是131,127的回文数是12721)。


输入描述:
输入只有1行。
第1行输入一个整数t,保证t为素数。
数据保证:9<t<109


输出描述:
输出一行字符串,如果t的回文数仍是素数,则输出“prime”,否则输出"noprime"。
示例1

输入

13

输出

prime

说明

13的回文数是131,131是素数
示例2

输入

17

输出

noprime

说明

17的回文数是171,171不是素数(因子有3)

备注:
素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
素数的回文数为题意中的定义,1331不是素数的回文数。
t = list(input())
a = t[:-1][::-1]
s = "".join(i for i in (t+a))
n = int(int(s)**0.5)
flag=1

for i in range(2,n+1):
    if int(s)%i == 0:
        flag=0
        break

print("prime" if flag==1 else "noprime") 

发表于 2024-02-13 20:41:18 回复(0)
def prime_huiwen(num):
    nums = int(str(num) + str(num[:-1][::-1]))
    sqrt = nums**0.5

    for i in  range(2, int(sqrt)+1):
        if nums%i != 0:
            pass
        else:
            print("noprime")
            break
    else:
        print("prime")

num = input()
prime_huiwen(num)
发表于 2023-04-15 21:03:42 回复(0)

问题信息

难度:
2条回答 3656浏览

热门推荐

通过挑战的用户

查看代码
素数回文