Програма C за намиране на LCM на две числа

В този пример ще се научите да изчислявате LCM (най-ниското общо кратно) на две числа, въведени от потребителя.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C:

  • 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 на две числа не може да бъде по-малко от max.

Тестовият израз на whileцикъл винаги е верен.

Във всяка итерация се проверява дали max е перфектно делимо на n1 и n2.

 ако (мин.% n1 == 0 && макс.% n2 == 0) (…) 

Ако това условие на теста не е вярно, max се увеличава с 1и итерацията продължава, докато тестовият израз на ifизраза е истина.

LCM на две числа също може да бъде намерен по формулата:

 LCM = (num1 * num2) / GCD 

Научете как да намерите GCD на две числа в програмирането на C.

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. 

Интересни статии...