এই নিবন্ধে, আমরা একটি পূর্ণসংখ্যা (বলুন X) অনন্য প্রাকৃতিক সংখ্যার n-তম শক্তির যোগফল হিসাবে প্রকাশ করা যেতে পারে এমন উপায় খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব।
উদাহরণস্বরূপ, ধরুন X =100 এবং n =2
তাহলে প্রাকৃতিক সংখ্যার বর্গক্ষেত্রের যোগফল হিসেবে 100 প্রকাশ করার 3টি উপায় থাকবে।
100 = 102 100 = 62 + 82 100 = 12 + 32 + 42 + 52 + 72
এটি পুনরাবৃত্তি ব্যবহার করে সহজেই করা যেতে পারে। আমরা 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++; } //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