Найти наименьшее общее кратное набора из N целых чисел, лежащих в диапазоне от 1 до 1000 - C (СИ)
Формулировка задачи:
Найти наименьшее общее кратное набора из N целых чисел, лежащих в диапазоне от 1 до 1000. Под наименьшим общим кратным набора чисел понимается наименьшее из таких чисел, которые делятся на любое из чисел набора.
Формат ввода
В первой строке задается количество чисел N (1 ≤ N ≤ 20) в наборе. Во второй строке перечисляются через пробел в любом порядке все N целых чисел набора.
Формат вывода
Вывести полученное наименьшее общее кратное для заданного набора чисел.
Пример ввода:
4
1 5 6 4
Пример вывода:
60
Решение задачи: «Найти наименьшее общее кратное набора из N целых чисел, лежащих в диапазоне от 1 до 1000»
textual
Листинг программы
#include <stdio.h> typedef long long ll; ll gcd(ll a, ll b){ return (b) ? gcd(b, a % b) : a; } ll lcm(ll a, ll b){ return a / gcd(a, b) * b; } int main(){ int q; scanf("%d",&q); ll ans = 1; while (q--){ int x; scanf("%d",&x); ans = lcm(ans, x); } printf("%lld\n", ans); return 0; }
Объяснение кода листинга программы
В этом коде реализованы две функции: gcd(a, b) - нахождение наибольшего общего делителя двух чисел, и lcm(a, b) - нахождение наименьшего общего кратного двух чисел. Затем в функции main() происходит следующее:
- Вводится количество чисел N (q) для обработки.
- Инициализируется переменная ans единицей (1).
- В цикле происходит чтение N чисел x с помощью функции scanf().
- Для каждого числа x функция lcm() вызывается с текущим значением ans и x. Результат присваивается переменной ans.
- После окончания цикла выводится значение переменной ans с помощью функции printf().
- Программа возвращает 0, заканчивая свою работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д