সংখ্যা তত্ত্বে একটি দिये गये সংখ্যা বেসে একটি গাণিতিক সংখ্যা একটি প্রাকৃতিক সংখ্যা যেটি অন্য একটি প্রাকৃতিক সংখ্যার পূর্ণ ঘন ও যাতে প্রথম প্রাকৃতিক সংখ্যার অঙ্ক যোগফল দ্বিতীয় সংখ্যার অঙ্ক যোগফলের সমান (উইকিপিডিয়া)।
এই সংখ্যাটি হেনরি ডাডেনি কে আবিষ্কার করেছেন। এর গাণিতিক সূত্র হলো -

এখানে, আমাদের একটি পূর্ণসংখ্যা n দেওয়া আছে। আমাদের কাজ হলো দেওয়া সংখ্যা n ডাডেনি নম্বর কিনা তা চেক করা।
উদাহরণ দিয়ে বুঝি
ইনপুট: N = 17592
আউটপুট: No
ব্যাখ্যা:
দেওয়া সংখ্যাটি ডাডেনি নম্বর নয়।
সমাধানের পদ্ধতি
সমাধানটি ডাডেনি নম্বর-এর বেসিক ডেফিনিশনে নিহিত। একটি সংখ্যা ডাডেনি নম্বর এই তথ্যের ওপর ভিত্তি করে যে একটি সংখ্যার ঘনমূল তার অঙ্ক যোগফলের সমান।
অ্যালগরিদম:
ধাপ ১: চেক করুন n পূর্ণ ঘন কিনা।
ধাপ ২.১: যদি হ্যাঁ, তবে চেক করুন n-এর ঘনমূল = n-এর অঙ্ক যোগফল।
ধাপ ২.২.১: যদি হ্যাঁ, তবে সংখ্যাটি ডাডেনি নম্বর।
ধাপ ২.২.২: যদি না, তবে সংখ্যাটি ডাডেনি নম্বর নয়।
ধাপ ২.২: যদি না, তবে সংখ্যাটি ডাডেনি নম্বর নয়।
আমাদের অ্যালগরিদম minhaj করার C++ প্রোগ্রাম
#include <bits/stdc++.h>
using namespace std;
int calcDigitSum(int n){
int digitSum = 0;
int digitVal;
while (n > 0) {
digitVal = n % 10;
digitSum += digitVal;
n /= 10;
}
return digitSum;
}
int checkDudeney(int N) {
int cubeRoot = int( round( cbrt(N) ) );
if(pow(cubeRoot, 3.0) != N){
return 0;
}
int sumOfDigit = calcDigitSum(N);
if (cubeRoot != sumOfDigit)
return 0;
return 1;
}
int main() {
int N = 104323;
cout << "The number " << N;
if (checkDudeney(N))
cout << " is a dudeney number.";
else
cout << " is not a dudeney number.";
return 0;
}
আউটপুট
The number 104323 is not a dudeney number.