কম্পিউটার

একটি বড় সংখ্যা 13 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন


এখানে আমরা দেখব কিভাবে একটি সংখ্যা 13 দ্বারা বিভাজ্য কি না তা পরীক্ষা করা যায়। এই ক্ষেত্রে সংখ্যাটি অনেক বড় সংখ্যা। তাই আমরা সংখ্যাটিকে স্ট্রিং হিসাবে রাখি।

একটি সংখ্যা 13 দ্বারা বিভাজ্য হবে, যদি সংখ্যাটি নিম্নলিখিত পরিস্থিতিগুলিকে সন্তুষ্ট করে -

  • একটি সংখ্যা 13 দ্বারা বিভাজ্য যদি এবং শুধুমাত্র যদি আমরা বিকল্প যোগফল পাই অর্থাৎ বিকল্পভাবে ডান থেকে বামে তিনটি সংখ্যার ব্লক যোগ এবং বিয়োগ করলে 13 দ্বারা বিভাজ্য হয়৷ উদাহরণস্বরূপ, 2911285 13 দ্বারা বিভাজ্য কারণ বিকল্প যোগফল 3 আকারের ব্লক হল 2 – 911 + 285 =-650 যা 13 দ্বারা বিভাজ্য৷
  • একটি সংখ্যা 13 দ্বারা বিভাজ্য হয় যদি এবং শুধুমাত্র যদি 4 দ্বারা গুন করে বাকি সংখ্যাটি যোগ করে সংখ্যাটি গঠিত হয় তবে সেটিও 13 দ্বারা বিভাজ্য। উদাহরণস্বরূপ, 2353 বিবেচনা করুন। উপরের নিয়মটি প্রয়োগ করলে, আমরা 235 + 3*4 =পাই 247. পরবর্তী পুনরাবৃত্তিতে, 24 + 7*4 =52. যেহেতু 52 13 দ্বারা বিভাজ্য, প্রদত্ত সংখ্যাটি 13 দ্বারা বিভাজ্য৷

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
bool isDiv13(string num){
   int length = num.size();
   if (length == 1 && num[0] == '0')
      return true;
   if (length % 3 == 1) { //when length is not divisible by 3, remainder is 1
      num +="00";
      length += 2;
   } else if (length % 3 == 2){ //when length is not divisible by 3, remainder is 2
      num += "0";
      length += 1;
   }
   int sum = 0, p = 1;
   for (int i = length - 1; i >= 0; i--) {
      int set = 0;
      set += (num[i--] - '0');
      set += (num[i--] - '0') * 10;
      set += (num[i] - '0') * 100;
      sum = sum + set * p;
      p *= (-1);
   }
   sum = abs(sum);
   return (sum % 13 == 0);
}
int main() {
   string num = "83959092724";
   if(isDiv13(num)){
      cout << "Divisible";
   } else {
      cout << "Not Divisible";
   }
}

আউটপুট

Divisible

  1. একটি বড় সংখ্যা 11 দ্বারা বিভাজ্য বা C++ এ নয় তা পরীক্ষা করুন

  2. C++ এ একটি বড় সংখ্যা 15 দ্বারা বিভাজ্য কিনা তা পরীক্ষা করুন

  3. পাইথনে কোন বড় সংখ্যা 19 দ্বারা বিভাজ্য কিনা তা পরীক্ষা করুন

  4. পাইথনে কোন বড় সংখ্যা 17 দ্বারা বিভাজ্য কিনা তা পরীক্ষা করুন