Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาตัวประกอบเฉพาะของจำนวนที่กำหนดโดยเรียงลำดับใน Python


สมมติว่าเรามีตัวเลข n มากกว่า 1 เราต้องหาตัวประกอบเฉพาะของมันทั้งหมดแล้วส่งคืนในลำดับการจัดเรียง เราสามารถเขียนตัวเลขเป็นผลคูณของจำนวนเฉพาะได้ พวกมันคือตัวประกอบเฉพาะของมัน และปัจจัยเฉพาะเดียวกันอาจเกิดขึ้นมากกว่าหนึ่งครั้ง

ดังนั้นหากอินพุตเท่ากับ 42 เอาต์พุตจะเป็น [2, 3, 7]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • res:=รายการใหม่
  • ในขณะที่ n mod 2 เหมือนกับ 0, do
    • แทรก 2 ที่ส่วนท้ายของ res
    • n :=ผลหารของ n/2
  • สำหรับฉันในช่วง 3 ถึง (รากที่สองของ n) เพิ่มขึ้นในขั้นตอนที่ 2
    • ในขณะที่ n mod i เหมือนกับ 0, do
      • ใส่ i ต่อท้าย res
      • n :=ผลหารของ n/i
  • ถ้า n> 2 แล้ว
    • ใส่ n ต่อท้าย res
  • ผลตอบแทน

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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]