Найменше спільне кратне (НСK) двох цілих чисел і називається найменше натуральне число, яке ділиться націло на і на . Наприклад, НСK(2, 3) = 6, НСK(6, 10) = 30.
Для знаходження найменшого спільного кратного скористаємося формулою:
звідки
Оскільки a, b < 2 \cdot 10^9, то при множенні значення a \cdot b може вийти за межі типу int. При обчисленні слід скористатися типом long long.
Приклад
Розглянемо числа з прикладу:
звідки
Реалізація алгоритму
Реалізуємо функції gcd (найбільший спільний дільник) і lcm (найменше спільне кратне).
long long gcd(long long a, long long b)
{
return (!b) ? a : gcd(b, a % b);
}
long long lcm(long long a, long long b)
{
return a / gcd(a, b) * b;
}Основна частина програми. Читаємо вхідні дані.
scanf("%lld %lld", &a, &b);Обчислюємо і виводимо НСK двох чисел.
d = lcm(a, b);
printf("%lld\n", d);Python реалізація
Реалізуємо функції gcd (найбільший спільний дільник) і lcm (найменше спільне кратне).
def gcd(a, b):
if a == 0: return b
if b == 0: return a
if a > b: return gcd(a % b, b)
return gcd(a, b % a)
def lcm(a, b):
return a // gcd(a, b) * bОсновна частина програми. Читаємо вхідні дані.
a, b = map(int, input().split())Обчислюємо і виводимо НСK двох чисел.
print(lcm(a, b))Python реалізація — lcm
Для обчислення найменшого спільного кратного (НСK) двох чисел скористаємося функцією lcm, вбудованою в мові Пітон.
import mathЧитаємо вхідні дані.
a, b = map(int, input().split())Обчислюємо і виводимо НСK двох чисел.
print(math.lcm(a, b))