python - python中的回文素数

标签 python python-3.x primes palindrome

所以我想弄清楚如何找到 2 个数字之间的所有回文素数。 到目前为止,我的代码可以找到回文,但是当我检查质数时,它也会打印出非质数。并且有多次打印的数字。

你能帮忙吗

谢谢。

a = 0
b = 500
a += 1   
for i in range(a,b):
    if(str(i) == str(i)[::-1]):
        if(i>2):
            for a in range(2,i):
                y = True
                if(i%a==0):
                    y = False
                    break
            if y:
                print(i)

最佳答案

根据您最近的代码,您只需确保为您测试的每个数字重置 y,它作为您的素数正指标。否则,当您到达数字 4(第一个合数)时它将保持 False

>>> a = 0
>>> b = 500
>>> a += 1
>>> for i in range(a,b):
        y = True
        if(str(i) == str(i)[::-1]):
            if(i>2):
                for a in range(2,i):
                    if(i%a==0):
                        y = False
                        break
                if y:
                    print(i)


3
5
7
11
101
131
151
181
191
313
353
373
383

As you can see, all of these are prime.您可以检查 wolframalpha 提供的素数列表,以确保没有遗漏任何回文素数。如果您想包括 2,请为此添加一个特例。

关于python - python中的回文素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699625/

相关文章:

python - 忽略特定时间内的异常情况

python - Rowwise min() 和 max() 对于具有 NaN 的列失败

python - 消息读取脚本显示机器人自己的消息并永远循环

c++ - 修复我在 C++ 中的埃拉托斯特尼筛法的实现

python - Django 模板如何显示货币值,如 4.8p

python - 从 Python 字典中获取数据

python - 在 Pandas 中读取、选择和重新排列列

python - Pandas 数据框的列表列表

javascript - 质数在 7 每 +30 之后是否总是具有相同的模式

algorithm - 如何找到给定数量的素数?