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

C++-এ নির্দিষ্ট রেঞ্জে ফ্যাক্টোরিয়াল সংখ্যা গণনা

আমাদের একটি রেঞ্জ দেওয়া আছে একটি পূর্ণসংখ্যা ভেরিয়েবল start থেকে end পর্যন্ত, এবং আমাদের কাজ হল দেওয়া রেঞ্জে কতগুলো ফ্যাক্টোরিয়াল সংখ্যা রয়েছে তা গণনা করা।

ফ্যাক্টোরিয়াল সংখ্যা কী?

একটি সংখ্যার ফ্যাক্টোরিয়াল হল সেই সংখ্যাটি ১ করে কমিয়ে গুণ করা। এটিকে '!' চিহ্ন দিয়ে প্রকাশ করা হয়: 0!, 1!, 2!, 3!, 5! ইত্যাদি। 0! এবং 1! সবসময় ১।

যেমন 2-এর ফ্যাক্টোরিয়াল = 2 * (2-1) = 2 * 1 = 2
3-এর ফ্যাক্টোরিয়াল = 3 * (3-1) * (2-1) = 3 * 2 * 1 = 6

উদাহরণ

ইনপুট − start = 5, end = 600 আউটপুট − ফ্যাক্টোরিয়াল সংখ্যার গণনা 3

ব্যাখ্যা − 5-600 রেঞ্জে ৩টি ফ্যাক্টোরিয়াল সংখ্যা রয়েছে।

ইনপুট − start = 1, end = 100 আউটপুট − ফ্যাক্টোরিয়াল সংখ্যার গণনা 5

ব্যাখ্যা − 1-100 রেঞ্জে ৫টি ফ্যাক্টোরিয়াল সংখ্যা রয়েছে।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • রেঞ্জ ইনপুট নিয়ে start এবং end ভেরিয়েবলে সংরক্ষণ করুন
  • আরেকটি ভেরিয়েবল fact নিন ফ্যাক্টোরিয়াল মান সংরক্ষণ করতে এবং 1 দিয়ে আরম্ভ করুন, আরেকটি i নিন সংখ্যা বাড়াতে
  • while fact < start লুপ চালান এবং fact = fact * i দিয়ে ফ্যাক্টোরিয়াল গণনা করুন, i বৃদ্ধি করুন
  • আরেকটি while fact <= end লুপ চালান এবং r বৃদ্ধি করুন, fact = fact * i সেট করুন, i বৃদ্ধি করুন
  • r ফেরত দিন যেটি মোট ফ্যাক্টোরিয়াল সংখ্যার গণনা ধারণ করে
  • ফলাফল প্রিন্ট করুন

উদাহরণ কোড

#include <iostream>
using namespace std;

// ফ্যাক্টোরিয়াল সংখ্যা গণনা
int factorials(int start, int end) {
    // 1 থেকে শুরু করে প্রথম ফ্যাক্টোরিয়াল 'fact' খুঁজুন
    // যা 'start'-এর চেয়ে বড় বা সমান
    int fact = 1, i = 1;
    while (fact < start) {
        fact = fact * i;
        i++;
    }
    
    // start থেকে end রেঞ্জে ফ্যাক্টোরিয়াল গণনার জন্য r
    int r = 0;
    while (fact <= end) {
        r++;
        fact = fact * i;
        i++;
    }
    
    // রেঞ্জে ফ্যাক্টোরিয়ালের গণনা ফেরত দিন
    return r;
}

int main() {
    int start = 5, end = 600;
    cout << "Count of factorial numbers are " << factorials(start, end);
    return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −

Count of factorial numbers are 3
  1. C++-এ সংখ্যা পরিসরের বিটওয়াইজ AND

  2. C++-এ নির্দিষ্ট রেঞ্জে সব গুড নম্বর প্রিন্ট করা

  3. C++-এ ফ্যাক্টোরিয়ালের ট্রেইলিং জিরো (Factorial Trailing Zeroes)

  4. C++-এ দেওয়া দৈর্ঘ্যের কমপোজিট (Composite) সংখ্যার রেঞ্জ খুঁজে বের করা