Python 将前 N 个质数存储在列表中的程序?
Python program to store first N prime numbers in a list?
我写了下面的代码来寻找 N 个质数。但是,我无法将其存储在列表中。
def prime(n):
global count
s=0
flag=0
ls=[]
for i in range(2,n/2+1):
if(n%i==0):
flag=1
break
if(flag==0):
print n
ls.append(n)
count=count+1
print ls
# main pro
n=input("Enter the number of prime numbers to be displayed: ")
print"The prime numbers are:"
count=0
x=2
while(count<n):
prime(x)
x+=1
我想要的输出应该是:
Enter the number of prime numbers to be displayed: 5
[2, 3, 5, 7, 11]
但是当我 运行 程序时,我得到的输出是:
Enter the number of prime numbers to be displayed: 5
The prime numbers are:
2
[2]
3
[3]
[]
5
[5]
[]
7
[7]
[]
[]
[]
11
[11]
如何在不更改上述代码的情况下将质数添加到列表中?
我应该在后面附加元素吗?我是 Python 的新手,所以非常感谢您的帮助!谢谢!
这将 return 个 count
个素数数组:
def get_primes(count):
primes = []
n = 2
while len(primes) != count:
for i in range(2, n // 2 + 1):
if n % i == 0:
break
else:
primes.append(n)
n += 1
return primes
你可以这样使用它:
n=input("Enter the number of prime numbers to be displayed: ")
array_of_n_prime_numbers = get_primes(n)
print("The prime numbers are:", array_of_n_prime_numbers)
试试这个
def prime(x):
if x<1:
return []
prime_numbers = [2,3]
if x<3:
return prime_number[:x]
for i in range(2,x):
next_pn = prime_numbers[-1]+2
while any(not(next_pn%pn) for pn in prime_numbers):
next_pn += 2
prime_numbers.append(next_pn)
return prime_numbers
N = input("Enter the number of prime numbers to be displayed:")
print (prime(int(N)))
输出
Enter the number of prime numbers to be displayed:5
[2, 3, 5, 7, 11]
不需要遍历所有数字,而是可以只遍历它前面的质数。
这是一个简单的方法:
def prime(n):
ls = [2,3]
if (n < 3):
return ls[:n]
for i in range(2,n):
generate = ls[-1]+2
while any(not(generate%num) for num in ls):
generate += 2
ls.append(generate)
return ls
n = int(input("Enter the number of prime numbers to be displayed:"))
print (prime(n))
输入为5时的输出:
[2, 3, 5, 7, 11]
我写了下面的代码来寻找 N 个质数。但是,我无法将其存储在列表中。
def prime(n):
global count
s=0
flag=0
ls=[]
for i in range(2,n/2+1):
if(n%i==0):
flag=1
break
if(flag==0):
print n
ls.append(n)
count=count+1
print ls
# main pro
n=input("Enter the number of prime numbers to be displayed: ")
print"The prime numbers are:"
count=0
x=2
while(count<n):
prime(x)
x+=1
我想要的输出应该是:
Enter the number of prime numbers to be displayed: 5
[2, 3, 5, 7, 11]
但是当我 运行 程序时,我得到的输出是:
Enter the number of prime numbers to be displayed: 5
The prime numbers are:
2
[2]
3
[3]
[]
5
[5]
[]
7
[7]
[]
[]
[]
11
[11]
如何在不更改上述代码的情况下将质数添加到列表中? 我应该在后面附加元素吗?我是 Python 的新手,所以非常感谢您的帮助!谢谢!
这将 return 个 count
个素数数组:
def get_primes(count):
primes = []
n = 2
while len(primes) != count:
for i in range(2, n // 2 + 1):
if n % i == 0:
break
else:
primes.append(n)
n += 1
return primes
你可以这样使用它:
n=input("Enter the number of prime numbers to be displayed: ")
array_of_n_prime_numbers = get_primes(n)
print("The prime numbers are:", array_of_n_prime_numbers)
试试这个
def prime(x):
if x<1:
return []
prime_numbers = [2,3]
if x<3:
return prime_number[:x]
for i in range(2,x):
next_pn = prime_numbers[-1]+2
while any(not(next_pn%pn) for pn in prime_numbers):
next_pn += 2
prime_numbers.append(next_pn)
return prime_numbers
N = input("Enter the number of prime numbers to be displayed:")
print (prime(int(N)))
输出
Enter the number of prime numbers to be displayed:5
[2, 3, 5, 7, 11]
不需要遍历所有数字,而是可以只遍历它前面的质数。
这是一个简单的方法:
def prime(n):
ls = [2,3]
if (n < 3):
return ls[:n]
for i in range(2,n):
generate = ls[-1]+2
while any(not(generate%num) for num in ls):
generate += 2
ls.append(generate)
return ls
n = int(input("Enter the number of prime numbers to be displayed:"))
print (prime(n))
输入为5时的输出:
[2, 3, 5, 7, 11]