मान लीजिए कि हमारे पास एक संख्या 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