Найти наибольший общий делитель чисел M и N. Используйте теорему Эйлера: Если M делится на N, то НОД (N, M)=N, - C (СИ)

Узнай цену своей работы

Формулировка задачи:

решить нужно с функциями пользователя на языке си. вот, я около этого... помогите, будьте бобры
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<conio.h>
int NOD (int m, int n)
{
    int t;
    if(m % n == 0)
    {
        printf("nod: %d", n); return n;
    }
    else
    {
        t = (n % m, m); return t;
    }
}
 
int main ()
{
    int m, n, p;
    printf("enter m "); scanf("%d", &m);
    printf("enter n "); scanf("%d", &n);
    p = NOD(m, n); printf("%d", p);
getch();
return 0;
}

Решение задачи: «Найти наибольший общий делитель чисел M и N. Используйте теорему Эйлера: Если M делится на N, то НОД (N, M)=N,»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
 
int NOD (int m, int n)
{ int t;
 
 if (m<n) {t=m; m=n; n=t;} 
 if (m==0 || n==0) return 1;
 if (m%n) return NOD(m-n,n);
 return n ;
}
 
int main ()
{
    int m, n, p;
    printf("enter m "); scanf("%d", &m);
    printf("enter n "); scanf("%d", &n);
    p = NOD(m, n); printf("%d", p);
    getch();
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: iostream.h и conio.h
  2. Определение функции для поиска НОД (наибольший общий делитель) чисел M и N, с использованием алгоритма Эйлера.
  3. Проверка условий для корректной работы функции: если M меньше N, то значения переменных t и m меняются местами, чтобы в дальнейшем использовать функцию для N и m.
  4. Если M или N равны нулю, то НОД равен 1.
  5. Если M не делится на N без остатка, то функция рекурсивно вызывается для вычисления НОД(M-N,N).
  6. Функция возвращает значение N.
  7. Ввод значений переменных m и n с помощью функции scanf.
  8. Вычисление и вывод значения НОД(m,n) с помощью функции NOD.
  9. Получение значения функции getch для завершения работы программы.
  10. Возврат значения 0 для успешного завершения программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы