Проверить, являются ли два введенных числа взаимно простыми - C (СИ)
Формулировка задачи:
Ввести два числа, напечатать, являются ли они взаимно простыми или нет.
Решение задачи: «Проверить, являются ли два введенных числа взаимно простыми»
textual
Листинг программы
#include <stdio.h> //обычный алгоритм Евклида через остатки long Nod(long a, long b) { while (a && b) if (a >= b) a %= b; else b %= a; return a | b; } int main() { printf("input x y:") long x, y; scanf("%ld%ld", &x, &y); printf( (Nod(x, y)==1)?"Coprime numbers":"not coprime numbers"); return 0; }
Объяснение кода листинга программы
Код выполняет следующую последовательность действий:
- Включает стандартную библиотеку ввода-вывода
- Определяет функцию
Nod
, которая реализует алгоритм Евклида для нахождения НОД двух чисел - Определяет функцию
main
, которая запрашивает у пользователя ввод двух чисел, затем вызывает функциюNod
для этих чисел и выводит результат на экран - Выводит сообщение
input x y:
- Объявляет две переменные типа long
x
иy
, которые будут использоваться для хранения введенных пользователем чисел - Использует функцию
scanf
для считывания двух чисел и сохранения их в переменныхx
иy
- Использует условный оператор if-else для проверки результата функции
Nod
. Если результат равен 1, то выводит сообщениеCoprime numbers
, иначе выводит сообщениеnot coprime numbers
- Возвращает 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д