Составить алгоритм и написать функцию, которая находит наибольший общий делитель натуральных чисел а и б - C (СИ)
Формулировка задачи:
Составить алгоритм и написать функцию, которая находит наибольший общий делитель натуральных чисел а и б.
Решение задачи: «Составить алгоритм и написать функцию, которая находит наибольший общий делитель натуральных чисел а и б»
textual
Листинг программы
#include<stdio.h>
#include<conio.h>
int nod(int a,int b)
{
int c;
if(b>a)
c=nod(b,a);
else if(b<=0)
c=a;
else c=nod(b,a%b);
return(c);
}
int main()
{
int a,b;
fflush(stdin);
puts("1-e chislo = ");
scanf("%d",&a);
puts("2-e chislo = ");
scanf("%d",&b);
printf("nod chisel = %d",nod(a,b));
getch();
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию nod(int a,int b), которая находит наибольший общий делитель натуральных чисел а и b
- Объявляем переменную c, которая будет хранить результат
- Проверяем условие, если b больше или равно a, то вызываем рекурсивно функцию nod, меняя местами значения a и b
- Если b меньше или равно нулю, то c присваивается значение a
- Иначе, c присваивается результат вызова функции nod, где вторым аргументом является остаток от деления a на b
- Возвращаем значение c из функции
- В функции main() объявляем переменные a и b, считываем их значения с помощью scanf
- Вызываем функцию nod с значениями a и b и выводим результат на экран с помощью printf
- Ждем нажатия клавиши с помощью getch