首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想找出两个数字之间的所有回文素数。我的代码可以找到回文数字,但也可以打印非素数

我想找出两个数字之间的所有回文素数。我的代码可以找到回文数字,但也可以打印非素数
EN

Stack Overflow用户
提问于 2015-03-22 22:39:54
回答 2查看 1.2K关注 0票数 0

打印非质数是因为它只检查'2-10‘中的质数。如何更改代码以检查直到x的所有数字?

代码语言:javascript
复制
N = eval(input("Enter the starting point N: \n"))
M = eval(input("Enter the ending point M: \n"))

n = str(N)

i = 0


for j in range(N, M):
    if (n[i] == n[len(n)-1]):
        x = N
        N = N + 1
        if not((x % 2 == 0) or (x % 3 == 0) or (x % 4 == 0) or (x % 5 == 0) or (x % 6 == 0) or (x % 7 == 0) or (x % 8 == 0) or (x % 9 == 0) or (x % 10 == 0)):
            print(x)
        n = str(N)

    else:
        N = N + 1
        n = str(N)
EN

回答 2

Stack Overflow用户

发布于 2015-03-22 22:51:19

下面是我编写的Sieve of Eratosthenes的一个实现。它非常有效地找到了比你传递的数字小的所有质数。我会解释给你听,但是维基百科(上面的链接)比我做的要好得多。使用它来生成质数,然后迭代它返回的列表,以检查这些数字是否为回文。

代码语言:javascript
复制
def primeslt(n):
    """Finds all primes less than n"""

    if n < 3:
        return []

    A = [True] * n
    A[0], A[1] = False, False

    for i in range(2, int(n**0.5)+1):
        if A[i]:
            j = i**2
            while j < n:
                A[j] = False
                j += i

    return [num for num in range(n) if A[num]]
票数 1
EN

Stack Overflow用户

发布于 2015-03-22 23:04:55

下面是一个回文代码片段

代码语言:javascript
复制
low_range = input()
high_range = input()
string_convertor = str

for num in range(int(low_range), int(high_range)):
    num_to_string = string_convertor(num)
    reverse = num_to_string[::-1]
    if num_to_string == reverse:
        print("Palindrome")
        print(num_to_string)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29195677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档