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