এই টিউটোরিয়ালে আমরা একটি প্রোগ্রাম লিখব যা যাচাই করবে দেওয়া বড় সংখ্যাটি 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
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।