ในบทความนี้ เราจะเรียนรู้เกี่ยวกับวิธีการแก้ไขปัญหาที่ระบุด้านล่าง -
คำชี้แจงปัญหา
ด้วยจำนวน n เราจำเป็นต้องค้นหาผลิตภัณฑ์ของปัจจัยเฉพาะที่มีอยู่ทั้งหมดและส่งคืน
ตัวอย่าง
Input: num = 11 Output: Product is 11
คำอธิบาย
ในที่นี้ จำนวนอินพุตคือ 11 โดยมีตัวประกอบเฉพาะ 1 ตัว และมันคือ 11 ดังนั้นผลคูณของมันคือ 11
วิธีที่ 1
ใช้ a for loop จาก i =2 ถึง n+1 ตรวจสอบว่า i เป็นปัจจัยของ n หรือไม่ แล้วตรวจสอบว่า i เป็นจำนวนเฉพาะหรือไม่ ถ้าใช่ ให้เก็บผลิตภัณฑ์ไว้ในตัวแปรผลิตภัณฑ์ และดำเนินการตามขั้นตอนนี้ต่อไปจนกว่า i จะกลายเป็น =n
ตัวอย่าง
def productPrimeFactors(n): product = 1 for i in range(2, n+1): if (n % i == 0): isPrime = 1 for j in range(2, int(i/2 + 1)): if (i % j == 0): isPrime = 0 break if (isPrime): product = product * i return product # main n = 18 print (productPrimeFactors(n))
ผลลัพธ์
120
ขอบเขตของตัวแปรทั้งหมดแสดงอยู่ในภาพด้านล่าง -
แนวทางที่ 2
1) ในขณะที่ n หารด้วย 2 ลงตัว (คู่) ให้พิมพ์ 2 แล้วหาร n ด้วย 2
2) หลังจากขั้นตอนที่ 1 n จะต้องกลายเป็นเลขคี่ ตอนนี้เริ่มการวนซ้ำจาก i =3 จนถึงรากที่สองของ n ในขณะที่ฉันหาร n ให้พิมพ์ i แล้วหาร n ด้วย i หลังจากที่ฉันหาร n ไม่สำเร็จ ให้เพิ่ม i เป็น 2 และดำเนินการตามขั้นตอนต่อไป
3) ถ้า n เป็นจำนวนเฉพาะและมากกว่า 2 แล้ว n จะไม่กลายเป็น 1 ด้วยสองขั้นตอนข้างต้น ดังนั้นให้พิมพ์ n หากมากกว่า 2
ตัวอย่าง
import math def productPrimeFactors(n): product = 1 # prime factor 2 if (n % 2 == 0): product *= 2 while (n%2 == 0): n = n/2 # n must be odd for i in range (3, int(math.sqrt(n)), 2): # While i divides n, print i and # divide n if (n % i == 0): product = product * i while (n%i == 0): n = n/i # n is a prime number greater than 2 if (n > 2): product = product * n return product # main() n = 8 print (int(productPrimeFactors(n)))
ผลลัพธ์
2
ขอบเขตของตัวแปรถูกกล่าวถึงในภาพด้านล่าง -
บทสรุป
ในบทความนี้ เราได้เรียนรู้เกี่ยวกับผลคูณของตัวประกอบเฉพาะของจำนวนที่กำหนดโดยใช้กำลังเดรัจฉานและวิธีการที่มีประสิทธิภาพ