检查数组的素数元素之和在Python中是否为素数
假设我们有一个数组nums。我们必须检查给定数组中所有素数元素的总和是否也是素数
因此,如果输入像nums = [1,2,4,5,3,3],则输出将为True,因为所有素数的和为(2 + 5 + 3 + 3)= 13,而13也为主要。
为了解决这个问题,我们将遵循以下步骤-
最大:= 10000
筛子:=大小为MAX并填充为true的列表
定义功能 generate_list_of_primes()
sieve [0]:=错误,sieve [1]:=错误
对于2到MAX-1范围内的i
对于范围2 ^ i至MAX的j,增加i
筛[j]:=假
如果sieve [i]为真,则
从主要方法执行以下操作:
generate_list_of_primes()
总计:= 0
对于范围从0到arr-1的i,执行
总计:=总计+ arr [i]
如果sieve [arr [i]]为真,则
如果sieve [total]为true,则
返回True
返回False
让我们看下面的实现以更好地理解-
范例程式码
MAX = 10000sieve = [True] * MAX
def generate_list_of_primes() :
sieve[0] = False
sieve[1] = False
for i in range(2, MAX) :
if sieve[i] :
for j in range(2**i, MAX, i) :
sieve[j] = False
def solve(arr) :
generate_list_of_primes() total = 0
for i in range(len(arr)) :
if sieve[arr[i]] :
total += arr[i]
if sieve[total] :
return True
return False
nums = [1,2,4,5,3,3]
print(solve(nums))
输入值
[1,2,4,5,3,3]输出结果
True
以上是 检查数组的素数元素之和在Python中是否为素数 的全部内容, 来源链接: utcz.com/z/315851.html