কম্পিউটার

C++ এ 2^n এর শেষ দুটি সংখ্যা খুঁজে বের করার প্রোগ্রাম


এই সমস্যায়, আমাদের একটি সংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল C++ এ 2^n এর শেষ দুটি সংখ্যা খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা।

সমস্যা বর্ণনা

শেষ দুটি সংখ্যা খুঁজে বের করতে. আমরা শুধুমাত্র শেষ দুটি সংখ্যার পণ্য ব্যবহার করব। এবং গণনাকে ছোট করার জন্য অন্যান্য জিনিসগুলি ছেড়ে দিন।

সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,

ইনপুট :N =12

আউটপুট :96

ব্যাখ্যা

2^12 =4096

সমাধান পদ্ধতি

সমস্যা সমাধানের জন্য, একটি প্রত্যক্ষ পদ্ধতি হল 2^Nand-এর মান খুঁজে বের করা, তারপর যখন এটি 100 দ্বারা ভাগ করা হয় তখন অবশিষ্টটি খুঁজে বের করা।

উদাহরণ

#include <iostream>
using namespace std;
int findLastDigit(int N){
   int powerVal = 1;
      for(int i = 0; i < N; i++){
         powerVal *= 2;
      }
   return powerVal%100;
}
int main() {
   int N = 14;
   cout<<"The last two digits of 2^"<<N<<" is "<<findLastDigit(N);
   return 0;
}

আউটপুট

The last two digits of 2^14 is 84

এই পদ্ধতি কার্যকর নয়, কারণ এন প্রোগ্রামের বড় মানের জন্য ওভারফ্লো হবে।

একটি উন্নত পদ্ধতি মান থেকে শুধুমাত্র 2 সংখ্যা বিবেচনা করে। এবং প্রতিটি শক্তির জন্য এটিকে দুই দ্বারা গুণ করুন।

2^14 এর ক্ষেত্রে প্রতিটির জন্য, শেষ দুটি সংখ্যা হল 84। আমরা পূর্ণ সংখ্যার পরিবর্তে 84কে দুই দ্বারা গুণ করব যা গণনা সংরক্ষণ করবে। সুতরাং,(84*2)%100 =68.

উদাহরণ

#include <iostream>
using namespace std;
int findLastDigit(int N){
   int powerVal = 1;
   for(int i = 0; i < N; i++){
      powerVal = (powerVal * 2)%100;
   }
   return powerVal;
}
int main() {
   int N = 15;
   cout<<"The last two digits of 2^"<<N<<" is "<<findLastDigit(N);
   return 0;
}

আউটপুট

The last two digits of 2^15 is 68

  1. C++ ব্যবহার করে N ফ্যাক্টোরিয়ালের যোগফলের শেষ দুটি সংখ্যা খুঁজুন।

  2. দুটি সিরিজের প্রথম সংঘর্ষের বিন্দু খুঁজে পেতে C++ প্রোগ্রাম

  3. একটি গ্রাফে দুটি নোডের মধ্যে পথ খোঁজার জন্য C++ প্রোগ্রাম

  4. একটি গ্রাফ ম্যাট্রিক্সের বিপরীত অনুসন্ধান করার জন্য C++ প্রোগ্রাম