Найти наименьшее общее кратное набора из 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() происходит следующее:

  1. Вводится количество чисел N (q) для обработки.
  2. Инициализируется переменная ans единицей (1).
  3. В цикле происходит чтение N чисел x с помощью функции scanf().
  4. Для каждого числа x функция lcm() вызывается с текущим значением ans и x. Результат присваивается переменной ans.
  5. После окончания цикла выводится значение переменной ans с помощью функции printf().
  6. Программа возвращает 0, заканчивая свою работу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы