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

C প্রোগ্রাম: প্লাস পারফেক্ট নম্বর (Plus Perfect Number) চেক করা

একটি নম্বর x দেওয়া থাকলে যার n সংখ্যক ডিজিট আছে, আমাদের টাস্ক হলো চেক করা দেয়া নম্বরটি 'প্লাস পারফেক্ট নম্বর' কিনা। এজন্য নম্বরের প্রতিটি ডিজিট d-এর nth পাওয়ার (d^n) বের করে সব ডিজিট যোগ করতে হবে, যদি যোগফল n-এর সমান হয় তবে নম্বরটি প্লাস পারফেক্ট নম্বর। প্লাস পারফেক্ট নম্বর আর্মস্ট্রং নম্বর খুঁজে বের করার মতো।

নিচের উদাহরণে দেখানো হলো −

C প্রোগ্রাম: প্লাস পারফেক্ট নম্বর (Plus Perfect Number) চেক করা

উদাহরণ

ইনপুট: 163 আউটপুট: Number is not a perfect_number
ব্যাখ্যা: 1^3 + 6^3 + 3^3, 163-এর সমান নয়
ইনপুট: 371 আউটপুট: Number is a perfect_number
ব্যাখ্যা: 3^3 + 7^3 + 1^3, 371-এর সমান

নিচে ব্যবহৃত পদ্ধতি −

  • প্রথম ধাপ: ইনপুট নম্বরের ডিজিট সংখ্যা গণনা।
  • দ্বিতীয় ধাপ: একটি ডিজিটকে ইনপুট নম্বরের ডিজিট সংখ্যা ততবার পাওয়ার করা।
  • তৃতীয় ধাপ: সব নম্বর যোগ করা এবং সমান কিনা চেক করা।

অ্যালগরিদম

Start
function int power(int a, int b) এ
  ধাপ ১ → power = 1 ডিক্লেয়ার ও ইনিশিয়ালাইজ
  ধাপ ২ → লুপ: While b>0
    power = power * a সেট
    b ১ কমান
  ধাপ ৩ → power রিটার্ন
End function power
function int count(int n) এ
  ধাপ ১ → i = 0 ডিক্লেয়ার ও ইনিশিয়ালাইজ
  ধাপ ২ → লুপ: While n!=0
    i ১ বাড়ান
    n = n/10 সেট
  End Loop
  ধাপ ৩ → i রিটার্ন
function int perfect_number(int n) এ
  ধাপ ১ → x = count(n) ডিক্লেয়ার ও ইনিশিয়ালাইজ
  ধাপ ২ → rem = 0, m = 0 ডিক্লেয়ার ও ইনিশিয়ালাইজ
  ধাপ ৩ → লুপ: While(n)
    rem = n % 10 সেট
    m = m + power(rem, x) সেট
    n = n / 10 সেট
  End Loop
  ধাপ ৪ → m রিটার্ন
End Function perfect_number
function int main(int argc, char const *argv[]) এ
  ধাপ ১ → n = 1634 ইনিশিয়ালাইজ
  ধাপ ২ → If n == perfect_number(n) then,
    Print "Number is a perfect_number "
  ধাপ ৩ → else
    Print "Number is not a perfect_number "
  End if
End main
Stop

উদাহরণ

#include <stdio.h>
int power(int a, int b) {
    int power = 1;
    while(b > 0) {
        power *= a;
        b--;
    }
    return power;
}
int count(int n) {
    int i = 0;
    while(n != 0) {
        i++;
        n = n / 10;
    }
    return i;
}
int perfect_number(int n) {
    int x = count(n);
    int rem = 0, m = 0;
    while(n) {
        rem = n % 10;
        m += power(rem, x);
        n /= 10;
    }
    return m;
}
int main(int argc, char const *argv[]) {
    int n = 1634;
    if(n == perfect_number(n)) {
        printf("Number is a perfect_number\n");
    }
    else
        printf("Number is not a perfect_number\n");
    return 0;
}

আউটপুট

উপরের কোড রান করলে নিচের আউটপুট জেনারেট হবে −

Number is a perfect_number

  1. ব্যাশ প্রোগ্রাম: সংখ্যা প্রাইম কিনা চেক করা

  2. C প্রোগ্রাম: অ্যারে প্যালিনড্রোম কিনা চেক করা

  3. প্রাইম নম্বর চেক করার পাইথন প্রোগ্রাম

  4. পাইথনে আর্মস্ট্রอง নম্বর চেক করা