程序在Python中按排序顺序查找给定数字的所有素数

假设我们的n大于1,我们必须找到其所有素数并按排序顺序返回它们。我们可以写出一个数字作为质数的乘积,它们是质数。同样的素数因子可能会出现多次。

因此,如果输入类似于42,则输出将为[2、3、7]。

为了解决这个问题,我们将遵循以下步骤-

  • res:=一个新列表

  • 而n mod 2与0相同,则

    • 在res末尾插入2

    • n:= n / 2的商

  • 对于范围3至(n的平方根)中的i,在步骤2中增加

    • 在res末尾插入i

    • n:= n / i的商

    • 当n mod我等于0时,

  • 如果n> 2,则

    • 在res的末尾插入n

  • 返回资源

让我们看下面的实现以更好地理解-

示例

class Solution:

   def solve(self, n):

      res=[]

      while n%2==0:

         res.append(2)

         n//=2

      for i in range(3,int(n**.5)+1,2):

         while n%i==0:

            res.append(i)

            n//=i

      if n>2:

         res.append(n)

      return res

ob = Solution()print(ob.solve(42))

输入值

42

输出结果

[2, 3, 7]

以上是 程序在Python中按排序顺序查找给定数字的所有素数 的全部内容, 来源链接: utcz.com/z/351490.html

回到顶部