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

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


একটি ইন্টিজার সংখ্যা ইনপুট হিসেবে দেওয়া আছে। লক্ষ্য হলো সেই সংখ্যার ফ্যাক্টোরিয়ালে শেষে কতগুলো ০ আছে সেটি বের করা। একটি সংখ্যা N-এর ফ্যাক্টোরিয়াল হলো [1, N] রেঞ্জের সকল সংখ্যার গুণফল।

আমরা জানি ট্রেলিং জিরো তখনই পাওয়া যায় যখন সংখ্যা ১০-এর গুণফল হয় অথবা ফ্যাক্টর জোড়া (২,৫) থাকে। ৫-র চেয়ে বড় যেকোনো সংখ্যার ফ্যাক্টোরিয়ালে ২-এর সংখ্যা ৫-র চেয়ে বেশি থাকে প্রাইম ফ্যাক্টরাইজেশনে। একটি সংখ্যকে ৫-এর ঘাত দিয়ে ভাগ করলে তার ফ্যাক্টরে ৫-এর সংখ্যা পাওয়া যায়। তাই ৫-এর সংখ্যাটিই ট্রেলিং জিরোর সংখ্যা বতাবে।

উদাহরণ ১

ইনপুট

number=6

আউটপুট

একটি সংখ্যার ফ্যাক্টোরিয়ালে ট্রেলিং জিরোর সংখ্যা: 1

ব্যাখ্যা

ফ্যাক্টোরিয়াল ৩০। ৩০-এর প্রাইম ফ্যাক্টর: ২ × ৩ × ৫। তাই শুধু একটি (২,৫) জোড়া আছে, ট্রেলিং জিরো ১।

উদাহরণ ২

ইনপুট

number=12

আউটপুট

একটি সংখ্যার ফ্যাক্টোরিয়ালে ট্রেলিং জিরোর সংখ্যা: 2

ব্যাখ্যা

ফ্যাক্টোরিয়াল ৪৭৯০০১৬০০। প্রাইম ফ্যাক্টর: ২¹⁰ × ৩⁵ × ৫² × ৭¹ × ১১¹। তাই (২,৫) এর ২ জোড়া পাওয়া যায়, ট্রেলিং জিরো ২।

প্রয়োগ করা পদ্ধতি

এই পদ্ধতিতে সংখ্যাকে ৫-এর ঘাতগুলো দিয়ে ভাগ করা হয়। যদি ফলাফল ১-র চেয়ে বড় হয়, তবে ট্রেলিং জিরোর সংখ্যা ৫-এর কাউন্ট হবে। এটিকে কাউন্টে যোগ করা হয়।

  • ইনপুট হিসেবে ইন্টিজার number নিন।

  • trailing_zeros(int number) ফাংশনটি ট্রেলিং জিরোর সংখ্যা রিটার্ন করে।

  • আরম্ভিক কাউন্ট ০ রাখুন।

  • for লুপ দিয়ে সংখ্যাকে ৫-এর ঘাত দিয়ে ভাগ করুন।

  • যদি number/i >= 1 হয়, তবে এই মান কাউন্টে যোগ করুন।

  • লুপ শেষে কাউন্ট রিটার্ন করুন ফলাফল হিসেবে।

উদাহরণ কোড

#include <iostream> 
using namespace std; 

int trailing_zeros(int number) {
    int count = 0; 
    
    for (int i = 5; number / i >= 1; i *= 5) {
        int temp = number / i; 
        count = count + temp; 
    } 
    
    return count; 
} 

int main() { 
    int number = 50; 
    cout << "একটি সংখ্যার ফ্যাক্টোরিয়ালে ট্রেলিং জিরোর সংখ্যা: " << trailing_zeros(number); 
    return 0; 
}

আউটপুট

উপরোক্ত কোডটি রান করলে নিচের আউটপুটটি আসবে:

একটি সংখ্যার ফ্যাক্টোরিয়ালে ট্রেলিং জিরোর সংখ্যা: 12

  1. সি++-এ আয়তক্ষেত্রে বর্গের সংখ্যা গণনা

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

  3. একটি সংখ্যার ফ্যাক্টোরিয়ালে ট্রেইলিং জেরোর সংখ্যা গণনার জাভা প্রোগ্রাম

  4. ফ্যাক্টোরিয়ালে ট্রেইলিং জিরোর সংখ্যা গণনা করার পাইথন প্রোগ্রাম