मान लीजिए कि हमारे पास एक संख्या n है, और हमें इस संख्या का क्रमचय ज्ञात करना है, जो 3 से विभाज्य है, लेकिन 6 से विभाज्य नहीं है। यदि ऐसा कोई मान नहीं बनाया जा सकता है, तो -1 लौटाएं। उदाहरण के लिए, यदि n 336 है, तो आउटपुट 363 हो सकता है।
जैसा कि हम जानते हैं कि एक संख्या 6 से विभाज्य है अर्थात यह 3 और 2 से विभाज्य है। अतः प्रत्येक सम संख्या जो 3 से विभाज्य है, 6 से विभाज्य होगी। यदि हम किसी संख्या के अंकों को आपस में बदल दें जो 3 से विभाज्य है और सम संख्या भी। , इसे विषम बनाने के लिए, यह परिणाम होगा।
उदाहरण
#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