Найти НОК (наименьшее общее кратное) чисел N и M - C (СИ)
Формулировка задачи:
Задание : Найти НОК (наименьшее общее кратное) чисел N и M , числа должен вводить пользователь и нельзя делить на 0 и на негативные числа .
Решение задачи: «Найти НОК (наименьшее общее кратное) чисел N и M»
textual
Листинг программы
#pragma hdrstop
#pragma argsused
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
int gcd( int a, int b ) {
while(a!=b)
{
if (a>b) a-=b;
else b-=a;
}
return a;
}
int main() {
int a, b;
char x;
do {
printf("Vvedite pervoje cislo:");
scanf("%d", &a);
printf("Vvedite vtoroe cislo:");
scanf("%d", &b);
if( a == 0 || b == 0 ){
printf( "S 0 delit nelza!" );
}
if (a < 0) {
printf("\nVne diapazona");
}
printf( "Naimensie obsee kratnoe = %d\n", lcm( abs( a ), abs( b ) ) );
printf("\nEsli hotite povtorit Y\n\nEsli net , lubuju druguju bukvu\n");
flushall();
scanf(" %c", &x);
clrscr();
}
while (x == 'y' || x == 'Y');
getch();
}
Объяснение кода листинга программы
- Сначала подключаются необходимые заголовочные файлы: stdio.h, stdlib.h, tchar.h
- Далее определена функция gcd(int a, int b), которая находит НОК(наименьшее общее кратное) двух целых чисел.
- В функции main() определены переменные a, b, x типа int и типа char соответственно.
- Далее с помощью цикла do-while происходит запрос на ввод двух целых чисел с помощью функции scanf().
- После ввода чисел выполняется проверка на ноль и отрицательность введенных чисел.
- Если выполняется хотя бы одно из условий, выводится сообщение об ошибке и программа переходит к следующей итерации цикла do-while.
- В противном случае, вызывается функция lcm(abs(a),abs(b)), которая находит НОК(наименьшее общее кратное) чисел a и b.
- Результат выводится на экран с помощью функции printf().
- После вывода результата, пользователю предлагается ввести 'y' или 'Y' для повторного ввода чисел или любую другую букву для выхода из программы.
- Ввод символа сохраняется в переменной x.
- Если введенный символ равен 'y' или 'Y', программа возвращается к шагу 4.
- Если введенный символ не равен 'y' или 'Y', программа завершается.