इस लेख में, हम उन तरीकों को खोजने के लिए एक कार्यक्रम पर चर्चा करेंगे जो एक पूर्णांक (जैसे X) को अद्वितीय प्राकृतिक संख्याओं की n-th शक्ति के योग के रूप में व्यक्त किया जा सकता है।
उदाहरण के लिए, मान लीजिए X =100 और n =2
फिर 100 को प्राकृत संख्याओं के वर्गों के योग के रूप में व्यक्त करने के 3 तरीके होंगे।
100 = 102 100 = 62 + 82 100 = 12 + 32 + 42 + 52 + 72
यह रिकर्सन का उपयोग करके आसानी से किया जा सकता है। हम 1 से शुरू करेंगे और दी गई संख्या के n-वें मूल तक जाएंगे। प्रत्येक रन में, हम दी गई संख्या से प्राकृत संख्याओं (1 से शुरू करके) की n-वीं घात को तब तक घटाएंगे जब तक कि संख्या इससे कम न हो जाए। यह हमें प्राकृतिक संख्याओं की 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++;
}
//setting the higher limit
int max = (int)floor(pow(number, 1.0 / n));
for (int i = init + 1; i <= max; i++) {
//subtracting n-th power values starting from 1
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