Dados dos números positivos N y M , la tarea es comprobar si los pares de números dados (N, M) forman un Número de Compromiso o no.
Ejemplos:
Entrada: N = 48, M = 75
Salida: Sí
Explicación:
Los divisores propios de 48 son 1, 2, 3, 4, 6, 8, 12, 16, 24 La
suma de los divisores propios de 48 es 75( sum1 )
El los divisores de 75 son 1, 3, 5, 15, 25 La
suma de los divisores propios de 48 es 49( sum2 )
Dado que sum2 = N + 1, los pares dados forman números prometidos.
Entrada: N = 95, M = 55
Salida: No
Explicación:
Los divisores propios de 95 son 1, 5, 19 La
suma de los divisores propios de 48 es 25( sum1 )
Los divisores propios de 55 son 1, 5, 11 La
suma de los divisores propios divisores de 48 es 17( suma2 )
Dado que ni sum2 es igual a N + 1 ni sum1 es igual a M + 1, por lo tanto, los pares dados no forman números prometidos.
Acercarse:
- Encuentra la suma de los divisores propios de los números dados N y M .
- Si la suma de los divisores propios de N es igual a M + 1 o la suma de los divisores propios de M es igual a N + 1 , entonces los pares dados forman Números de Compromiso .
- De lo contrario, no forma un par de números prometidos.
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 check whether N is // Perfect Square or not bool isPerfectSquare(int N) { // Find sqrt double sr = sqrt(N); return (sr - floor(sr)) == 0; } // Function to check whether the given // pairs of numbers is Betrothed Numbers // or not void BetrothedNumbers(int n, int m) { int Sum1 = 1; int Sum2 = 1; // For finding the sum of all the // divisors of first number n for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { Sum1 += i + (isPerfectSquare(n) ? 0 : n / i); } } // For finding the sum of all the // divisors of second number m for (int i = 2; i <= sqrt(m); i++) { if (m % i == 0) { Sum2 += i + (isPerfectSquare(m) ? 0 : m / i); } } if ((n + 1 == Sum2) && (m + 1 == Sum1)) { cout << "YES" << endl; } else { cout << "NO" << endl; } } // Driver Code int main() { int N = 9504; int M = 20734; // Function Call BetrothedNumbers(N, M); return 0; }
Java
// Java program for the above approach class GFG{ // Function to check whether N is // Perfect Square or not static boolean isPerfectSquare(int N) { // Find sqrt double sr = Math.sqrt(N); return (sr - Math.floor(sr)) == 0; } // Function to check whether the given // pairs of numbers is Betrothed Numbers // or not static void BetrothedNumbers(int n, int m) { int Sum1 = 1; int Sum2 = 1; // For finding the sum of all the // divisors of first number n for (int i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) { Sum1 += i + (isPerfectSquare(n) ? 0 : n / i); } } // For finding the sum of all the // divisors of second number m for (int i = 2; i <= Math.sqrt(m); i++) { if (m % i == 0) { Sum2 += i + (isPerfectSquare(m) ? 0 : m / i); } } if ((n + 1 == Sum2) && (m + 1 == Sum1)) { System.out.print("YES" +"\n"); } else { System.out.print("NO" +"\n"); } } // Driver Code public static void main(String[] args) { int N = 9504; int M = 20734; // Function Call BetrothedNumbers(N, M); } } // This code is contributed by 29AjayKumar
Python3
# Python3 program for the above approach from math import sqrt,floor # Function to check whether N is # Perfect Square or not def isPerfectSquare(N): # Find sqrt sr = sqrt(N) return (sr - floor(sr)) == 0 # Function to check whether the given # pairs of numbers is Betrothed Numbers # or not def BetrothedNumbers(n,m): Sum1 = 1 Sum2 = 1 # For finding the sum of all the # divisors of first number n for i in range(2,int(sqrt(n))+1,1): if (n % i == 0): if (isPerfectSquare(n)): Sum1 += i else: Sum1 += i + n/i # For finding the sum of all the # divisors of second number m for i in range(2,int(sqrt(m))+1,1): if (m % i == 0): if (isPerfectSquare(m)): Sum2 += i else: Sum2 += i + (m / i) if ((n + 1 == Sum2) and (m + 1 == Sum1)): print("YES") else: print("NO") # Driver Code if __name__ == '__main__': N = 9504 M = 20734 # Function Call BetrothedNumbers(N, M) # This code is contributed by Surendra_Gangwar
C#
// C# program for the above approach using System; class GFG{ // Function to check whether N is // perfect square or not static bool isPerfectSquare(int N) { // Find sqrt double sr = Math.Sqrt(N); return (sr - Math.Floor(sr)) == 0; } // Function to check whether the given // pairs of numbers is Betrothed numbers // or not static void BetrothedNumbers(int n, int m) { int Sum1 = 1; int Sum2 = 1; // For finding the sum of all the // divisors of first number n for(int i = 2; i <= Math.Sqrt(n); i++) { if (n % i == 0) { Sum1 += i + (isPerfectSquare(n) ? 0 : n / i); } } // For finding the sum of all the // divisors of second number m for(int i = 2; i <= Math.Sqrt(m); i++) { if (m % i == 0) { Sum2 += i + (isPerfectSquare(m) ? 0 : m / i); } } if ((n + 1 == Sum2) && (m + 1 == Sum1)) { Console.Write("YES" + "\n"); } else { Console.Write("NO" + "\n"); } } // Driver Code public static void Main(String[] args) { int N = 9504; int M = 20734; // Function Call BetrothedNumbers(N, M); } } // This code is contributed by Rajput-Ji
Javascript
<script> // Javascript program for the above approach // Function to check whether N is // Perfect Square or not function isPerfectSquare(N) { // Find sqrt let sr = Math.sqrt(N); return (sr - Math.floor(sr)) == 0; } // Function to check whether the given // pairs of numbers is Betrothed Numbers // or not function BetrothedNumbers(n, m) { let Sum1 = 1; let Sum2 = 1; // For finding the sum of all the // divisors of first number n for (let i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) { Sum1 += i + (isPerfectSquare(n) ? 0 : parseInt(n / i)); } } // For finding the sum of all the // divisors of second number m for (let i = 2; i <= Math.sqrt(m); i++) { if (m % i == 0) { Sum2 += i + (isPerfectSquare(m) ? 0 : parseInt(m / i)); } } if ((n + 1 == Sum2) && (m + 1 == Sum1)) { document.write("YES"); } else { document.write("NO"); } } // Driver Code let N = 9504; let M = 20734; // Function Call BetrothedNumbers(N, M); // This code is contributed by rishavmahato348. </script>
NO
Complejidad del Tiempo: O(√N + √M)
Publicación traducida automáticamente
Artículo escrito por hrishikeshkonderu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA