Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

213
Views
¿Cómo hacer que esta complejidad de tiempo lineal registre la complejidad de tiempo?

Estaba practicando para un desafío de codificación y me encontré con este problema.

A y su amigo compraron un número cada uno en la tienda de números enteros, A tiene el número N y su amigo tiene el número M. A quiere que ambos números sean coprimos. Para lograr esto, A divide ambos números por el número más grande que puede dividir a ambos números. A quiere saber la suma de números después de hacer esta operación, ayúdalo a encontrar esa suma.

Aporte

 Input: N = 6, M = 5 Output: 11 Explanation: The largest number that can divide both 5 and 6 is 1. After dividing, 5+6 = 11.

He probado este código

 long sum(long N, long M){ long divider = 1; long min = Math.min(N,M); for(long i=2; i<=min; i++) if(N%i==0 && M%i==0) divider=i; return (N/divider) + (M/divider); }

Pero la complejidad esperada en tiempo de ejecución es O(log(n)). Pero mi código da O(n).

No puedo encontrar ningún método para hacerlo logarítmico. Por favor, ayúdame. 😀😀

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Debe usar cualquier algoritmo eficiente para encontrar el MCD - Máximo común divisor . Por ejemplo, puede probar el algoritmo euclidiano con una complejidad de tiempo O(log(min(N, M)) .

 public static long sum(long N, long M) { long gcd = gcdEuclideanAlgorithm(N, M); return (N / gcd) + (M / gcd); } private static long gcdEuclideanAlgorithm(long a, long b) { return b == 0 ? a : gcdEuclideanAlgorithm(b, a % b); }

Puedes encontrar más algoritmos aquí .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!