ধরুন আমাদের 1 এর চেয়ে বড় একটি সংখ্যা n আছে, আমাদের তার সমস্ত মৌলিক গুণনীয়কগুলি খুঁজে বের করতে হবে এবং সেগুলিকে সাজানো ক্রমানুসারে ফেরত দিতে হবে। আমরা মৌলিক সংখ্যার গুণফল হিসাবে একটি সংখ্যা লিখতে পারি, তারা তার মৌলিক গুণনীয়ক। এবং একই প্রাইম ফ্যাক্টর একাধিকবার ঘটতে পারে।
সুতরাং, যদি ইনপুট 42 এর মত হয়, তাহলে আউটপুট হবে [2, 3, 7]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- res:=একটি নতুন তালিকা
- যদিও n mod 2 0 এর মতো, do
- res এর শেষে 2 ঢোকান
- n :=n/2 এর ভাগফল
- 3 থেকে (n-এর বর্গমূল) রেঞ্জের i জন্য, ধাপ 2 এ বৃদ্ধি করুন
- যদিও n mod i 0 এর মত, do
- res এর শেষে i ঢোকান
- n :=n/i এর ভাগফল
- যদিও n mod i 0 এর মত, do
- যদি 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]