কম্পিউটার

C++-এ (1^1)*(2^2)*(3^3)*(4^4)*.. এ শূন্যের পিছনের সংখ্যা গণনা করুন


ইনপুট হিসাবে একটি পূর্ণসংখ্যা দেওয়া. লক্ষ্য হল 11 X 22 X 33 X…X num num প্রোডাক্টের পিছনের শূন্যের সংখ্যা খুঁজে বের করা .

উদাহরণস্বরূপ

ইনপুট

num=5

আউটপুট

Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5

ব্যাখ্যা

The number of 2s and 5s in the product will be:
11 * 22* 33* 44* 55=11 * 22* 33* (22)4* 55. So total 10 2s and 5 5s, minimum is 5 so trailing zeroes will be 5.

ইনপুট

num=10

আউটপুট

Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5

ব্যাখ্যা

The number of 2s and 5s in the product will be:
11 *22*33*44*55*66 *77*88*99*1010 = 11 *22*33*44*55*66 *77*88*99*(2*5)10. So total 20 2s and 15 5s, minimum is 15 so trailing zeroes will be 15.

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

এই পদ্ধতিতে আমরা গুণফলের প্রতিটি সংখ্যার প্রাইম ফ্যাক্টরাইজেশনে 2s এবং 5s সংখ্যা গণনা করব। যেহেতু প্রতিটি সংখ্যা তার নিজস্ব শক্তিতে উত্থাপিত হয়, ফ্যাক্টরাইজেশনে ন্যূনতম 2s বা 5s গণনা পরবর্তী শূন্যের গণনা দেবে। যেহেতু প্রতিটি 2*5 পণ্যে একটি 0 যোগ করে।

  • ইনপুট হিসাবে একটি পূর্ণসংখ্যা নিন।

  • ফাংশন count_trailing(int num) num নেয় এবং (1^1)*(2^2)*(3^3)*(4^4)*.....

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • 2s এবং 5s গণনার জন্য temp_2 =0, temp_5 =0 ভেরিয়েবল নিন।

  • i=1 থেকে i<=num.

    পর্যন্ত লুপ ব্যবহার করে ট্রাভার্স করুন
  • তাপমাত্রাকে i হিসাবে নিন।

  • যখন temp 2 দ্বারা বিভাজ্য হয় তখন এটিকে অর্ধেক কমিয়ে দিন এবং temp_2 কে 2s সংখ্যা হিসাবে গণনা করতে i যোগ করুন।

  • যখন temp 5 দ্বারা বিভাজ্য তখন এটিকে 5 দ্বারা ভাগ করুন এবং 5s সংখ্যা হিসাবে temp_5 গণনা করতে i যোগ করুন।

  • count =min(temp_2, temp_5) ব্যবহার করে ন্যূনতম দুটি গণনা হিসাবে গণনা নিন।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int count_trailing(int num){
   int count = 0;
   int temp_2 = 0;
   int temp_5 = 0;
   for (int i = 1; i <= num; i++){
      int temp = i;
      while(temp % 2 == 0 && temp > 0){
         temp = temp / 2;
         temp_2 = temp_2 + i;
      }
      while (temp % 5 == 0 && temp > 0){
         temp = temp / 5;
         temp_5 = temp_5+ i;
      }
   }
   count = min(temp_2, temp_5);
   return count;
}
int main(){
   int num = 5;
   cout<<"Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: "<<count_trailing(num);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5

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

  2. C++ এ হেক্সাডেসিমেল সংখ্যা গণনা করুন

  3. C++ এ ফ্যাক্টরিয়ালের সংখ্যা গণনা করুন

  4. C++ এ ফ্যাক্টরিয়াল ট্রেইলিং জিরো