এই টিউটোরিয়ালে আমরা একটি প্রোগ্রাম লিখব যা একটি সংখ্যাকে দুটি অংশে ভাগ করবে যাতে সেগুলো দেওয়া সংখ্যাগুলো দিয়ে বিভাজ্য হয়।
স্ট্রিং ফরম্যাটে একটি সংখ্যা এবং দুটি অন্য ইন্টিজার দেওয়া আছে। প্রোগ্রামটি রিটার্ন করবে যে দেওয়া সংখ্যাটিকে দুটি অংশে ভাগ করা সম্ভব কিনা যাতে প্রথম অংশটি প্রথম সংখ্যা দিয়ে এবং দ্বিতীয় অংশটি দ্বিতীয় সংখ্যা দিয়ে বিভাজ্য হয়।
সমস্যা সমাধানের ধাপগুলো:
সংখ্যা এবং ভাগ করার জন্য দুটি ইন্টিজার ইনিশিয়ালাইজ করুন।
যতক্ষণ না প্রথম অংশটি প্রথম সংখ্যা দিয়ে বিভাজ্য হয় ততক্ষণ সংখ্যার ওপর ইটারেট করুন।
প্রতিটি ক্যারেক্টারকে ডিজিটে কনভার্ট করে সংখ্যা গঠন করুন।
যখন প্রথম সংখ্যা দিয়ে বিভাজ্য হয় তখন লুপ ব্রেক করুন।
এখন পরবর্তী ইন্ডেক্স থেকে দ্বিতীয় অংশের জন্য ইটারেট করুন।
প্রথম অংশের মতোই সংখ্যা গঠন করুন।
যাচাই করুন যে দ্বিতীয় অংশটি দ্বিতীয় সংখ্যা দিয়ে বিভাজ্য কিনা।
যদি প্রথম এবং দ্বিতীয় অংশ যথাক্রমে প্রথম এবং দ্বিতীয় সংখ্যা দিয়ে বিভাজ্য হয়, তবে সেগুলো প্রিন্ট করুন অন্যথায় "Not possible" প্রিন্ট করুন।
উদাহরণ
নিচে কোডটি দেওয়া হলো:
#include <bits/stdc++.h> using namespace std; void checkTheDivisabilityOfPrefixAndSuffix(string num, int prefix_dividend, int suffix_dividend) { int N = num.length(); bool is_prefix_divisable = false, is_suffix_divisable = false; int index = 0; int prefix = num[index] - '0'; while (index < N) { if (prefix % prefix_dividend == 0) { is_prefix_divisable = true; break; } prefix = prefix * 10 + (num[++index] - '0'); } int suffix = num[++index] - '0'; while (index < N - 1) { suffix = suffix * 10 + (num[++index] - '0'); } cout << suffix << endl; if (suffix % suffix_dividend == 0) { is_suffix_divisable = true; } if (is_prefix_divisable && is_suffix_divisable) { cout << prefix << " " << suffix << endl; } else { cout << "Not possible" << endl; } } int main() { string number = "125333"; int prefix_dividend = 5; int suffix_dividend = 3; checkTheDivisabilityOfPrefixAndSuffix(number, prefix_dividend, suffix_dividend); return 0; }আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফল পাওয়া যাবে:
125 333
উপসংহার
টিউটোরিয়াল সম্পর্কে কোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানান।