检查数组的素数元素之和在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 = 10000

    sieve = [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

    回到顶部