মনে করুন আমাদের একটি সংখ্যা n আছে, এবং আমাদের এই সংখ্যার পারমিউটেশন বের করতে হবে, যা ৩ দিয়ে বিভাজ্য কিন্তু ৬ দিয়ে বিভাজ্য নয়। যদি এমন কোনো মান তৈরি করা না যায়, তবে -1 রিটার্ন করুন। উদাহরণস্বরূপ, যদি n হয় 336, তবে আউটপুট হতে পারে 363।
আমরা জানি একটি সংখ্যা ৬ দিয়ে বিভাজ্য মানে সেটি ৩ এবং ২ দিয়ে বিভাজ্য। তাই প্রতিটি জোড় সংখ্যা যা ৩ দিয়ে বিভাজ্য, সেটি ৬ দিয়ে বিভাজ্য হবে। যদি আমরা একটি সংখ্যার অঙ্কগুলো ইন্টারচেঞ্জ করি যা ৩ দিয়ে বিভাজ্য এবং জোড়, সেটিকে বিজোড় করার জন্য, তবে সেটিই ফলাফল হবে।
উদাহরণ
#include <iostream>
#include <cmath>
using namespace std;
int findNumber(int n) {
int digit_count = ceil(log10(n));
for (int i = 0; i < digit_count; i++) {
if (n % 2 != 0) {
return n;
} else {
n = (n / 10) + (n % 10) * pow(10, digit_count - i - 1);
continue;
}
}
return -1;
}
int main() {
int n = 132;
cout << "The permutation of " << n << " that is divisible by 3 but not by 6 is: " << findNumber(n);
}
আউটপুট
The permutation of 132 that is divisible by 3 but not by 6 is: 213