हमें एक संख्या n दी गई है, हमें इसके सभी कारक ढूंढने हैं और उन कारकों का गुणनफल निकालकर परिणाम रिटर्न करना है, यानी एक संख्या के कारकों का गुणनफल। एक संख्या के कारक वे संख्याएं होती हैं जो 1 सहित उस संख्या को पूरी तरह से विभाजित कर सकती हैं। जैसे 6 के कारक हैं: 1, 2, 3, 6।
अब कार्य के अनुसार हमें संख्या के सभी कारकों का गुणनफल निकालना है।
इनपुट - n = 18
आउटपुट - 5832
व्याख्या - 1 × 2 × 3 × 6 × 9 × 18 = 5832
इनपुट - n = 9
आउटपुट - 27
व्याख्या - 1 × 3 × 9 = 27
समस्या को हल करने के लिए नीचे दिया गया दृष्टिकोण
- इनपुट num लें।
- i = 1 से i*i <= num तक लूप करें
- जांचें कि num % i == 0 है तो,
- यदि num / i == i तो product = (product * i) % MAX सेट करें
- अन्यथा product को (product * i) % MAX और product को (product * num / i) % MAX के रूप में सेट करें।
- गुणनफल रिटर्न करें।
एल्गोरिदम
Start
In Function long long productfactor(int num)
Step 1→ product को 1 के रूप में घोषित और इनिशियलाइज़ करें
Step 2→ i = 1 से i*i <= num तक, i++
यदि num % i == 0 तो,
यदि num / i == i तो,
product को (product * i) % MAX के रूप में सेट करें
अन्यथा
product को (product * i) % MAX के रूप में सेट करें
product को (product * num / i) % MAX के रूप में सेट करें
Step 3→ product रिटर्न करें
In Function int main()
Step 1→ n को 9 के रूप में घोषित और इनिशियलाइज़ करें
Step 2→ productfactor(n) का परिणाम प्रिंट करें
Stop
उदाहरण
#include <iostream>
#define MAX 1000000000
// कारकों का गुणनफल खोजें
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