这个程序不给我任何输出?生成从2到n-1的素数

时间:2016-02-21 19:24:23

标签: python python-2.7 python-3.x

  

编写一个名为list_of_primes的函数,它接受一个正整数   n并返回所有素数的排序列表(升序)   介于2和n之间(包括2但不包括n)

def list_of_primes (n):

    list = []

    for i in range (2, n):
        isPrime = True
        for j in range (2, i):
            if (i % j == 0):
                isPrime = False

        if isPrime:
            list.append(list)
    return (list)



#Main Program
n = int(input("Enter a integer value: "))
result = list_of_primes (n)
print (result)

我无法获得此代码的任何输出。有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

应该是list.append(i)而不是list.append(list)

答案 1 :(得分:0)

不要在python中的内置列表之后命名你的变量,我还创建了另一个函数is_prime来检查一个数字是否是迭代时的素数

def list_of_primes(n):

    res = []
    for i in range(2, n):
        if is_prime(i):
            res.append(i)

    return res


def is_prime(n): # checks if a number is prime
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True


#Main Program
n = int(input("Enter a integer value: "))
result = list_of_primes(n)
print(result)