मान लीजिए कि हमारे पास दो पूर्णांक N और K हैं, और हमें पहले N प्राकृतिक संख्याओं का क्रमपरिवर्तन P इस प्रकार ज्ञात करना है कि वास्तव में K तत्व हैं जो GCD(P[i], i)> 1 की स्थिति को संतुष्ट करते हैं 1 <=i <=एन। तो जब एन =3 और के =1, तो आउटपुट 2, 1, 3 होगा। और जीसीडी (2, 1) =1, जीसीडी (1, 2) =1, जीसीडी (3, 3) =3पी>
दृष्टिकोण सरल है, हम अंतिम k तत्वों को उनके स्थान पर रखेंगे, शेष तत्वों को स्थानांतरित कर दिया जाएगा, जैसे कि ith तत्व को (i + 1) वें स्थान पर रखा जाएगा और (N - K) वें तत्व को रखा जाएगा स्थिति 1, क्योंकि gcd(x, x+1) =1.
उदाहरण
#include<iostream>
using namespace std;
void findPermutation(int n, int k) {
int permutation[n + 1];
for (int i = 1; i <= n; i++)
permutation[i] = i;
for (int i = 1; i < n - k; i++)
permutation[i + 1] = i;
permutation[1] = n - k;
for (int i = 1; i <= n; i++)
cout << permutation[i] << " ";
}
int main() {
int n = 5, k = 2;
cout << "The permutation is: ";
findPermutation(n, k);
} आउटपुट
The permutation is: 3 1 2 4 5