本文介绍了查找范围内的素数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

def is_prime(number):
    for i in range(2, number):
        if number % 1 == 0 and number % i == 0:
            return False
        else:
            return True
print(is_prime(13))
print(is_prime(55)) #True ##Why ???
def prime_numbers(a, b):
    lst = []
    for i in range(a,b+1):
        if is_prime(i):
            lst.append(i)
    return lst

print(prime_numbers(50, 100))

这是我的代码,假设我有 prime_numbers(50, 100).

This is my code and suppose I have prime_numbers(50, 100).

它应该返回 [53, 59, 61, 67, 71, 73, 79, 83, 89, 97] 而不是

It should return [53, 59, 61, 67, 71, 73, 79, 83, 89, 97] instead of

[51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99].

那么我的代码有什么问题?

So what is wrong with my code ?

推荐答案

重新定位 return True 行:

def is_prime(number):
    for i in range(2, number):
        if number % 1 == 0 and number % i == 0:
            return False

    return True


print(is_prime(13)) # True
print(is_prime(55)) # False

您的代码不起作用,因为您在第一次迭代期间返回了 TrueFalse.

Your code isn't working because you return True or False during the first iteration.

这篇关于查找范围内的素数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-26 12:23