কম্পিউটার টিউটোরিয়াল

সি++-এ ডাডেনি নম্বর


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

এই সংখ্যাটি হেনরি ডাডেনি কে আবিষ্কার করেছেন। এর গাণিতিক সূত্র হলো -

সি++-এ ডাডেনি নম্বর

এখানে, আমাদের একটি পূর্ণসংখ্যা 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.
  1. Frugal সংখ্যা চেক করা (C++)

  2. C++ দিয়ে পেন্টাটপ (Pentatope) সংখ্যা বের করা

  3. ফিবোনাচ্চি সংখ্যাগুলোর বর্গের যোগফল C++-এ

  4. C++ প্রোগ্রাম: মিস্টেরি নাম্বার (Mystery Number) চেক করা