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

সি প্রোগ্রাম দিয়ে স্ট্রং নাম্বার (Strong Number) চেক করা

স্ট্রং নাম্বার কী?

একটি সংখ্যা যদি তার প্রতিটি ডিজিটের ফ্যাক্টোরিয়ালের যোগফল ঐ সংখ্যার সমান হয়, তবে সেটিকে স্ট্রং নাম্বার বলা হয়।

উদাহরণ

  • 145: 1! + 4! + 5! = 1 + 24 + 120 = 145 → স্ট্রং নাম্বার
  • 123: 1! + 2! + 3! = 1 + 2 + 6 = 9 ≠ 123 → স্ট্রং নাম্বার নয়
  • 40585: 4!+0!+5!+8!+5! = 24+1+120+40320+120 = 40585 → স্ট্রং নাম্বার

অ্যালগরিদম

  1. সংখ্যা ইনপুট নিন, টেম্পে কপি রাখুন (temp = n)
  2. যখন n > 0:
    • digit = n % 10 (শেষ ডিজিট)
    • fact = factorial(digit) ক্যালকুলেট করুন
    • sum += fact
    • n = n / 10 (শেষ ডিজিট বাদ দিন)
  3. যদি sum == temp → স্ট্রং নাম্বার, অন্যথায় নয়।

সি প্রোগ্রাম

#include <stdio.h>

int factorial(int n) {
    int fact = 1;
    for (int i = 2; i <= n; i++)
        fact *= i;
    return fact;
}

int main() {
    int n, temp, digit, sum = 0;

    printf("Enter a number: ");
    scanf("%d", &n);

    temp = n;

    while (n > 0) {
        digit = n % 10;
        sum += factorial(digit);
        n /= 10;
    }

    if (sum == temp)
        printf("%d is a Strong Number\n", temp);
    else
        printf("%d is NOT a Strong Number\n", temp);

    return 0;
}

আউটপুট

Run 1:
Enter a number: 145
145 is a Strong Number

Run 2:
Enter a number: 25
25 is NOT a Strong Number

অপ্টিমাইজেশন: প্রি-কম্পিউটেড ফ্যাক্টোরিয়াল টেবিল

ডিজিট ০-৯ পর্যন্ত, তাই ফ্যাক্টোরিয়াল প্রি-কম্পিউট করে রাখলে দ্রুত হয়।

int fact[10] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880}; // 0! to 9!

while (n > 0) {
    sum += fact[n % 10];
    n /= 10;
}

জানা স্ট্রং নাম্বারগুলো (বেস ১০-এ)

১, ২, ১৪৫, ৪০৫৮৫ — মাত্র এই ৪টি।

  1. জাভা প্রোগ্রাম: পারফেক্ট নাম্বার চেক করা

  2. পাইথন প্রোগ্রাম লিখুন একটি সংখ্যা স্ট্রং নম্বর কিনা তা নির্ধারণ করতে

  3. পাইথনে দেয়া সংখ্যার বাইনারি রিপ্রেজেন্টেশনে ১ বিটের সংখ্যা গণনা করার প্রোগ্রাম

  4. পাইথনে দিয়ে गये সংখ্যার সব ডিজিটের যোগফল বের করার প্রোগ্রাম