এই সমস্যাতে, আমাদের তিনটি ইন্টিজার মান A, B, C দেওয়া আছে। আমাদের কাজ হল দেওয়া সমীকরণের সমাধানের সংখ্যা বের করা।
সমীকরণ
X = B*Sm(X)^A + C
যেখানে Sm(X) হল X-এর ডিজিটগুলোর যোগফল।
আমাদের X-এর সব সমাধান কাউন্ট করতে হবে যা উপরের সমীকরণ সन्तুষ্ট করে, যেখানে X হতে পারে ১ থেকে 109 পর্যন্ত যেকোনো সংখ্যা।
উদাহরণ দেখি:
ইনপুট
A = 3, B = 6, C = 4
আউটপুট
3
সমাধানের পদ্ধতি
সমাধান বের করার একটি পদ্ধতি হল X-এর মানগুলো কাউন্ট করা। এর জন্য ডিজিট সাম গুরুত্বপূর্ণ। সর্বোচ্চ ডিজিট সাম হল ৮১ (৯৯৯৯৯৯৯৯৯-এর জন্য)। এবং প্রতিটি ডিজিট সামের জন্য সমীকরণের একটি সমাধান পাওয়া যায়।
আমরা ১ থেকে ৮১ পর্যন্ত ডিজিট সামের জন্য সমাধান কাউন্ট করব।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int countSolutions(int a, int b, int c){ int solutionCount = 0; for (int digSum = 1; digSum <= 81; digSum++) { int solVal = b * pow(digSum, a) + c; int temp = solVal; int sum = 0; while (temp) { sum += temp % 10; temp /= 10; } if (sum == digSum && solVal < 1e9) solutionCount++; } return solutionCount; } int main(){ int a = 3, b = 6, c = 4; cout<<"The number of solutions of the equations is "<<countSolutions(a, b, c); return 0; }
আউটপুট
The number of solutions of the equations is 3