একটি সংখ্যা n দেওয়া আছে। এর সব ফ্যাক্টর বের করে তাদের গুণফল রিটার্ন করতে হবে। ফ্যাক্টর হলো যেসব সংখ্যা দিয়ে n সম্পূর্ণ বিভাজ্য (১ সহ)। যেমন ৬-এর ফ্যাক্টর: ১, ২, ৩, ৬।
ইনপুট − n = 18
আউটপুট − 5832
ব্যাখ্যা − ১ × ২ × ৩ × ৬ × ৯ × ১৮ = ৫৮৩২
ইনপুট − n = 9
আউটপুট − 27
ব্যাখ্যা − ১ × ৩ × ৯ = ২৭
প্রোগ্রামে ব্যবহৃত পদ্ধতি
- ইনপুট
numনিন। i = 1থেকেi*i <= numপর্যন্ত লুপ চালান।- যদি
num % i == 0হয়:- যদি
num/i == i(পারফেক্ট স্কয়ার), তবে একবারiগুণ করুন। - অন্যথায়
iএবংnum/iউভয় গুণ করুন।
- যদি
- মডুলো
1e9+7বা বড় সংখ্যা এড়াতে মডুলো ব্যবহার করুন।
অ্যালগরিদম
Start
Function productfactor(num)
product = 1
for i = 1 to sqrt(num)
if num % i == 0
if num/i == i
product = (product * i) % MAX
else
product = (product * i) % MAX
product = (product * num/i) % MAX
return product
Stop
উদাহরণ
#include <bits/stdc++.h>
#define MAX 1000000000
using namespace std;
long long productfactor(int num) {
long long product = 1;
for (int i = 1; i * i <= num; i++) {
if (num % i == 0) {
if (num / i == i)
product = (product * i) % MAX;
else {
product = (product * i) % MAX;
product = (product * num / i) % MAX;
}
}
}
return product;
}
int main() {
int n = 9;
cout << productfactor(n) << endl;
return 0;
}
আউটপুট
27