Retour aux défis
Facile 0 résolus 0 % de réussite

Least Common Multiple

Find the smallest positive number divisible by both values.

Ce que vous allez apprendre

  • Compute the LCM from the GCD
  • Avoid overflow by dividing before multiplying
  • Reuse one function inside another

Problème

Afficher la traduction

Return the least common multiple of a and b, the smallest positive number that both divide. lcm(a, b) = a / gcd(a, b) × b.

Implement lcm(a, b).

Input

a: The first positive number. b: The second positive number.

Output

Return lcm(a, b).

Contraintes

1 ≤ a, b ≤ 1,000,000,000

Exemples

Exemple 1
Entrée :
a = 4
b = 6

Sortie attendue :
expected = 12
Entrée :
long long a = 4;
long long b = 6;

Sortie attendue :
long long expected = 12;
Entrée :
long a = 4;
long b = 6;

Sortie attendue :
long expected = 12;

Explication

Multiples of 4: 4, 8, 12…; multiples of 6: 6, 12…; the first common one is 12.

Exemple 2
Entrée :
a = 7
b = 7

Sortie attendue :
expected = 7
Entrée :
long long a = 7;
long long b = 7;

Sortie attendue :
long long expected = 7;
Entrée :
long a = 7;
long b = 7;

Sortie attendue :
long expected = 7;

Explication

A number's LCM with itself is the number: 7.

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Use the relationship between gcd and lcm instead of searching for multiples.

Indice 2

Compute the gcd first, then combine the two numbers carefully.

Indice 3

Divide before multiplying to reduce overflow risk, even with large inputs.

Complexité attendue

O(log min(a, b)) time, O(1) extra space

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.