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

বড় সংখ্যা 37 দিয়ে বিভাজ্য কিনা C++ প্রোগ্রামে


এই টিউটোরিয়ালে আমরা একটি প্রোগ্রাম লিখব যা যাচাই করবে দেওয়া বড় সংখ্যাটি 37 দিয়ে বিভাজ্য কিনা।

এখানে কিছু গাণিতিক טרিক ব্যবহার করা হয়েছে। সমাধানের ধাপগুলো:

  • সংখ্যা ইনিশিয়ালাইজ করুন।

  • যদি দেওয়া সংখ্যার দৈর্ঘ্য 3 দিয়ে বিভাজ্য না হয়, তবে সংখ্যার শুরুতে শূন্য যোগ করে দৈর্ঘ্য 3 দিয়ে বিভাজ্য করুন।

  • সংখ্যাকে 3 অঙ্কের গ্রুপে ভাগ করুন এবং তাদের যোগফল বের করুন।

  • যদি যোগফল 37 দিয়ে বিভাজ্য হয়, তবে দেওয়া সংখ্যাও 37 দিয়ে বিভাজ্য।

  • যদি যোগফল 4 অঙ্কের হয়, তবে ধাপ 2 থেকে পুনরাবৃত্তি করুন।

  • সংখ্যাটি 37 দিয়ে বিভাজ্য কিনা তা প্রিন্ট করুন।

উদাহরণ

নিচে কোডটি দেওয়া হলো:

#include <bits/stdc++.h> using namespace std; bool isNumberDivisibleBy37(string number, int n) {    if (number == "0") {       return 0;    }    if (n % 3 == 1){       number = "00"+ number;       n += 2;    }    else if (n % 3 == 2){       number = "0"+ number;       n += 1;    }    int groups_sum = 0;    while (n != 0){       string group = number.substr(n - 3, n);       int group_value = (group[0] - '0') * 100 + (group[1] - '0') * 10 + (group[2] - '0') * 1;       groups_sum += group_value;       n = n - 3;    }    if (groups_sum >= 1000) {       string new_number = to_string(groups_sum);       return isNumberDivisibleBy37(new_number, new_number.length());    }    else {       return groups_sum % 37 == 0;    } } int main() {    string number = "4048675309";    if (isNumberDivisibleBy37(number, 10)) {       cout << "Yes" << endl;    }    else {       cout << "No" << endl;    }    return 0; }

আউটপুট

উপরের কোডটি রান করলে নিচের ফলাফল পাওয়া যাবে:

Yes

উপসংহার

টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।


  1. C++-তে সেন্টার্ড ননাগোনাল (Centered Nonagonal) সংখ্যা বের করা

  2. C++ প্রোগ্রাম: হেক্সাডেসিমেল থেকে ডেসিমেল কনভার্সন

  3. C++-এ ডেসিমেল থেকে হেক্সাডেসিমেল কনভার্সন প্রোগ্রাম

  4. C++-এ ডেসিমেল থেকে বাইনারি কনভার্সন প্রোগ্রাম