C Програма для пошуку LCM двох чисел

У цьому прикладі ви навчитеся обчислювати LCM (найнижче загальне кратне) двох чисел, введених користувачем.

Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування на С:

  • C Оператори програмування
  • C if… else Заява
  • C в той час як і робити … поки Loop

LCM двох цілих чисел n1 та n2 є найменшим додатним цілим числом, яке ідеально ділиться як на n1, так і на n2 (без залишку). Наприклад, LCM 72 і 120 дорівнює 360.

LCM, використовуючи while і if

 #include int main() ( int n1, n2, max; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); // maximum number between n1 and n2 is stored in min max = (n1> n2) ? n1 : n2; while (1) ( if (max % n1 == 0 && max % n2 == 0) ( printf("The LCM of %d and %d is %d.", n1, n2, max); break; ) ++max; ) return 0; ) 

Вихідні дані

 Введіть два натуральних числа: 72 120 LCM 72 і 120 дорівнює 360. 

У цій програмі цілі числа, введені користувачем, зберігаються у змінних n1 та n2 відповідно.

Найбільше число серед n1 та n2 зберігається у макс. LCM двох чисел не може бути меншим за макс.

Тестовий вираз whileциклу завжди відповідає дійсності.

У кожній ітерації перевіряється, чи max максимально ділиться на n1 та n2.

 якщо (хв% n1 == 0 && макс% n2 == 0) (…) 

Якщо ця умова тесту не відповідає дійсності, max збільшується на 1і ітерація продовжується, доки тестовий вираз ifтвердження не буде істинним.

LCM двох чисел також можна знайти за формулою:

 LCM = (num1 * num2) / GCD 

Дізнайтеся, як знайти GCD двох чисел у програмуванні на Сі.

Розрахунок LCM за допомогою GCD

 #include int main() ( int n1, n2, i, gcd, lcm; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); for (i = 1; i <= n1 && i <= n2; ++i) ( // check if i is a factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i; ) lcm = (n1 * n2) / gcd; printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm); return 0; ) 

Вихідні дані

 Введіть два натуральних числа: 72 120 LCM двох чисел 72 і 120 дорівнює 360. 

Цікаві статті...