এখানে আমরা দেখব কিভাবে একটি সংখ্যা 2, 3 এবং 5 দ্বারা বিভাজ্য কিনা তা পরীক্ষা করা যায়। এই ক্ষেত্রে সংখ্যাটি অনেক বড় সংখ্যা। তাই আমরা সংখ্যাটিকে স্ট্রিং হিসাবে রাখি।
একটি সংখ্যা 2, 3 এবং 5 দ্বারা বিভাজ্য হবে যদি সেই সংখ্যাটি 2,3 এবং 5 এর LCM দ্বারা বিভাজ্য হয়। সুতরাং 2, 3, 5 এর LCM হল 30। আমাদের পরীক্ষা করতে হবে সংখ্যাটি 30 দ্বারা বিভাজ্য কি না। একটি সংখ্যা 30 দ্বারা বিভাজ্য যখন এটি 10 দ্বারা বিভাজ্য (শেষ সংখ্যা 0) এবং 3 দ্বারা বিভাজ্য (সমস্ত অঙ্কের যোগফল 3 দ্বারা বিভাজ্য)
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
bool isDiv30(string num){
int n = num.length();
if(num[n - 1] != '0')
return false;
long sum = accumulate(begin(num), end(num), 0) - '0' * n;
if(sum % 3 == 0)
return true;
return false;
}
int main() {
string num = "353730746028908374890";
if(isDiv30(num)){
cout << "Divisible";
} else {
cout << "Not Divisible";
}
} আউটপুট
Divisible