इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो एक पूर्णांक (मान लीजिए X) को अद्वितीय प्राकृतिक संख्याओं के n-वें घात के योग के रूप में व्यक्त करने के तरीके खोजता है।
उदाहरण के लिए, मान लीजिए X = 100 और n = 2
तो 100 को प्राकृतिक संख्याओं के वर्गों के योग के रूप में व्यक्त करने के 3 तरीके होंगे।
100 = 10² 100 = 6² + 8² 100 = 1² + 3² + 4² + 5² + 7²
यह पुनरावृत्ति का उपयोग करके आसानी से किया जा सकता है। हम 1 से शुरू करेंगे और दी गई संख्या के n-वें मूल तक जाएंगे। प्रत्येक रन में, हम दी गई संख्या से प्राकृतिक संख्याओं के n-वें घात (1 से शुरू करके) को तब तक घटाएंगे जब तक संख्या उससे कम न हो जाए। यह हमें वे तरीके देगा जिनसे संख्या को प्राकृतिक संख्याओं के n-वें घात के योग के रूप में दर्शाया जा सकता है।
उदाहरण
#include <iostream>
#include <math.h>
using namespace std;
int result = 0;
int ways(int number, int a, int init, int n) {
if (a == 0) {
result++;
}
// उच्च सीमा सेट करना
int max = (int)floor(pow(number, 1.0 / n));
for (int i = init + 1; i <= max; i++) {
// 1 से शुरू करके n-वें घात मान घटाना
int b = a - (int)pow(i, n);
if (b >= 0)
ways(number, a - (int)pow(i, n), i, n);
}
return result;
}
int main() {
int a = 100, n = 2;
cout << ways(a, a, 0, n);
return 0;
}
आउटपुट
3