Dado un entero positivo N , la tarea es generar dos arreglos de longitud N de modo que los elementos del mismo índice de ambos arreglos sean coprimos y la diferencia absoluta entre la suma de los elementos de los arreglos sea N .
Ejemplos:
Entrada: N = 5
Salida:
{1, 3, 5, 7, 9}
{2, 4, 6, 8, 10}
Explicación: Los pares de elementos del mismo índice son (1, 2), (3, 4), (5, 6), (7, 8), (9, 10). Se puede observar que todos los pares son coprimos y la diferencia absoluta de la suma de las dos arrays es 5.Entrada: N = 3
Salida:
{2, 4, 7}
{1, 3, 6}
Planteamiento: La idea se basa en la observación de que dos números naturales consecutivos siempre son coprimos y la diferencia entre ellos es 1 . Siga los pasos a continuación para resolver el problema:
- Inicialice dos arrays A[] y B[] de tamaño N .
- Iterar sobre el rango [1, 2*N] usando la variable i . Para cada elemento del rango, comprueba si i es divisible por 2 o no. Si se encuentra que es cierto, inserte i en la array A[] . De lo contrario, inserte i en la array B[] .
- Después de completar los pasos anteriores, imprima las dos arrays.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to generate two arrays // satisfying the given conditions void printArrays(int n) { // Declare the two arrays A and B vector<int> A, B; // Iterate from range [1, 2*n] for (int i = 1; i <= 2 * n; i++) { // Assign consecutive numbers to // same indices of the two arrays if (i % 2 == 0) A.push_back(i); else B.push_back(i); } // Print the first array cout << "{ "; for (int i = 0; i < n; i++) { cout << A[i]; if (i != n - 1) cout << ", "; } cout << " }\n"; // Print the second array, B cout << "{ "; for (int i = 0; i < n; i++) { cout << B[i]; if (i != n - 1) cout << ", "; } cout << " }"; } // Driver Code int main() { int N = 5; // Function Call printArrays(N); return 0; }
Java
// Java program for the above approach import java.io.*; import java.util.*; class GFG{ // Satisfying the given conditions static void printArrays(int n) { // Declare the two arrays A and B ArrayList<Integer> A = new ArrayList<Integer>(); ArrayList<Integer> B = new ArrayList<Integer>(); // Iterate from range [1, 2*n] for(int i = 1; i <= 2 * n; i++) { // Assign consecutive numbers to // same indices of the two arrays if (i % 2 == 0) A.add(i); else B.add(i); } // Print the first array System.out.print("{ "); for(int i = 0; i < n; i++) { System.out.print(A.get(i)); if (i != n - 1) System.out.print(", "); } System.out.print(" }\n"); // Print the second array, B System.out.print("{ "); for(int i = 0; i < n; i++) { System.out.print(B.get(i)); if (i != n - 1) System.out.print(", "); } System.out.print(" }"); } // Driver code public static void main (String[] args) { int N = 5; // Function Call printArrays(N); } } // This code is contributed by sanjoy_62
Python3
# Python3 program for the above approach # Function to generate two arrays # satisfying the given conditions def printArrays(n) : # Declare the two arrays A and B A, B = [], []; # Iterate from range [1, 2*n] for i in range(1, 2 * n + 1): # Assign consecutive numbers to # same indices of the two arrays if (i % 2 == 0) : A.append(i); else : B.append(i); # Print the first array print("{ ", end=""); for i in range(n) : print(A[i], end=""); if (i != n - 1) : print(", ", end=""); print("}"); # Print the second array, B print("{ ", end=""); for i in range(n) : print(B[i], end=""); if (i != n - 1) : print(",", end=" "); print(" }", end=""); # Driver Code if __name__ == "__main__" : N = 5; # Function Call printArrays(N); # This code is contributed by AnkitRai01
C#
// C# program for the above approach using System; using System.Collections.Generic; class GFG{ // Satisfying the given conditions static void printArrays(int n) { // Declare the two arrays A and B List<int> A = new List<int>(); List<int> B = new List<int>(); // Iterate from range [1, 2*n] for(int i = 1; i <= 2 * n; i++) { // Assign consecutive numbers to // same indices of the two arrays if (i % 2 == 0) A.Add(i); else B.Add(i); } // Print the first array Console.Write("{ "); for(int i = 0; i < n; i++) { Console.Write(A[i]); if (i != n - 1) Console.Write(", "); } Console.Write(" }\n"); // Print the second array, B Console.Write("{ "); for(int i = 0; i < n; i++) { Console.Write(B[i]); if (i != n - 1) Console.Write(", "); } Console.Write(" }"); } // Driver Code public static void Main() { int N = 5; // Function Call printArrays(N); } } // This code is contributed by susmitakundugoaldanga
Javascript
<script> // JavaScript program for the above approach // Satisfying the given conditions function printArrays(n) { // Declare the two arrays A and B let A = []; let B = []; // Iterate from range [1, 2*n] for(let i = 1; i <= 2 * n; i++) { // Assign consecutive numbers to // same indices of the two arrays if (i % 2 == 0) A.push(i); else B.push(i); } // Print the first array document.write("{ "); for(let i = 0; i < n; i++) { document.write(A[i]); if (i != n - 1) document.write(", "); } document.write(" }" + "</br>"); // Print the second array, B document.write("{ "); for(let i = 0; i < n; i++) { document.write(B[i]); if (i != n - 1) document.write(", "); } document.write(" }"); } let N = 5; // Function Call printArrays(N); </script>
{ 2, 4, 6, 8, 10 } { 1, 3, 5, 7, 9 }
Complejidad temporal: O(N)
Espacio auxiliar: O(N)
Publicación traducida automáticamente
Artículo escrito por parthbanathia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA