打印非质数是因为它只检查'2-10‘中的质数。如何更改代码以检查直到x的所有数字?
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)发布于 2015-03-22 22:51:19
下面是我编写的Sieve of Eratosthenes的一个实现。它非常有效地找到了比你传递的数字小的所有质数。我会解释给你听,但是维基百科(上面的链接)比我做的要好得多。使用它来生成质数,然后迭代它返回的列表,以检查这些数字是否为回文。
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]]发布于 2015-03-22 23:04:55
下面是一个回文代码片段
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)https://stackoverflow.com/questions/29195677
复制相似问题