我在python中有一個名爲prime_sieve(N)的函數,如果該函數不是素數,則該函數將賦值0;如果是質數,則賦值1 - 它被稱爲面具。此功能正常工作。問題是在prime_sieve(N)的代碼下面的第2個功能和代碼是:在python中打印基於前一個函數的素數
import numpy as np
def prime_sieve(N):
nums = np.arange(2, N + 2, 1)
mask = 1 + np.zeroes(N, dtype = int)
for n in nums:
for i in np.arange(2 * n - 2, N, n):
mask[i] = 0
return nums, mask
numbers, mask = prime_sieve(8)
print(numbers) #prints out the actual numbers starting at 2
print(mask) #prints out the 0s and 1s assigned to the values if they are a prime or not.
我必須用一個函數調用primes_list(N)的上述功能,只打印出的質數從列表中。對於primes_list(N)中的代碼是:
def primes_list(N):
for i in range (0, N, 1):
if mask[i] == 1:
return prime_sieve(numbers[i])
print(primes_list(8))
我從prime_sieve(N)函數接收的輸出是:
[2,3,4,5,6,7,8, 9]
[1,1,0,1,0,1,0,0]
我從primes_list接收的輸出(N)的功能是:
預期輸出:[2,3,5,7]
我的輸出:(陣列([2,3]),陣列([1,1]))
任何建議將受到高度讚賞。
我numpy的版本已經沒有零,它有零? – Denziloe