Программа на C для поиска НОК двух чисел

В этом примере вы научитесь вычислять НОК (наименьшее общее кратное) двух чисел, введенных пользователем.

Чтобы понять этот пример, вы должны знать следующие темы программирования на C:

  • Операторы программирования на C
  • C if… else Заявление
  • C while и do … while Цикл

НОК двух целых чисел n1 и n2 - это наименьшее положительное целое число, которое полностью делится как на n1, так и на n2 (без остатка). Например, НОК 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 НОК 72 и 120 равно 360. 

В этой программе целые числа, введенные пользователем, сохраняются в переменных n1 и n2 соответственно.

Наибольшее число среди n1 и n2 сохраняется в макс. НОК двух чисел не может быть меньше макс.

Тестовое выражение whileцикла всегда истинно.

На каждой итерации проверяется, делится ли max на n1 и n2.

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

Если это тестовое условие не истинно, max увеличивается на 1и итерация продолжается до тех пор, пока тестовое выражение ifинструкции не станет истинным.

НОК двух чисел также можно найти по формуле:

 НОК = (число1 * число2) / НОД 

Узнайте, как найти НОД двух чисел в программировании на C.

Расчет НОК с использованием 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 НОК двух чисел 72 и 120 равно 360. 

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