এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে শিখব −
সমস্যা বিবৃতি − একটি সংখ্যা n দেওয়া হলে, আমাদের উপলব্ধ সমস্ত অনন্য মৌলিক গুণনীয়কের গুণফল খুঁজে বের করতে হবে এবং তা ফেরত দিতে হবে।
উদাহরণস্বরূপ,
Input: num = 11 Output: Product is 11 Explanation: Here, the input number is 11 having only 1 prime factor and it is 11. And hence their product is 11.
পন্থা 1
i =2 থেকে n+1 পর্যন্ত লুপ ব্যবহার করে i n এর একটি ফ্যাক্টর কিনা তা পরীক্ষা করুন এবং তারপরে পরীক্ষা করুন যে আমি নিজেই মৌলিক সংখ্যা কিনা, যদি হ্যাঁ হয় তবে পণ্য ভেরিয়েবলে পণ্য সংরক্ষণ করুন এবং আমি =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))
আউটপুট
6
সমস্ত ভেরিয়েবলের সুযোগ নীচের ছবিতে দেখানো হয়েছে −
পন্থা 2
-
যদিও n 2 দ্বারা বিভাজ্য (এমনকি), প্রিন্ট 2 এবং n কে 2 দ্বারা ভাগ করুন
-
ধাপ 1 এর পরে, n অবশ্যই বিজোড় হয়ে যাবে। এখন i =3 থেকে n এর বর্গমূল পর্যন্ত একটি ফর লুপ শুরু করুন। যখন আমি n ভাগ করি, আমি প্রিন্ট করি এবং n কে i দ্বারা ভাগ করি। আমি n ভাগ করতে ব্যর্থ হওয়ার পর, I 2 দ্বারা বৃদ্ধি করুন এবং প্রক্রিয়াটি চালিয়ে যান।
-
যদি 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
ভেরিয়েবলের স্কোপ নিচের ছবিতে উল্লেখ করা হয়েছে −
উপসংহার
এই নিবন্ধে, আমরা ব্রুট ফোর্স অ্যাপ্রোচ এবং একটি দক্ষ পদ্ধতির সাথে একটি প্রদত্ত সংখ্যার অনন্য মৌলিক গুণনীয়কগুলির গুণফল সম্পর্কে শিখেছি৷