Proc46. Описать функцию NOD2($$A$$, $$B$$) целого типа, находящую наибольший общий делитель (НОД) двух целых положительных чисел $$A$$ и $$B$$, используя алгоритм Евклида: НОД($$A$$, $$B$$) = НОД($$B$$, $$A mod B$$), если $$B \neq 0$$; НОД($$A$$, $$0$$) = $$A$$. С помощью этой функции найти наибольшие общие делители пар $$(A, B), (A, C), (A, D),$$ если даны числа $$A, B, C, D$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <stdio.h> int nod2(int a ,int b){ while ((a!=0)&&(b!=0)){ if (a>b) a%= b; else b%=a; } return a+b; } int main(void) { int a,b,c,d; printf("A:"); scanf("%i", &a); printf("B:"); scanf("%i", &b); printf("C:"); scanf("%i", &c); printf("D:"); scanf("%i", &d); printf("NOD2(A,B): %i\n",nod2(a,b)); printf("NOD2(A,C): %i\n",nod2(a,c)); printf("NOD2(A,D): %i\n",nod2(a,d)); return 0; } |
Другие задачи из раздела Proc можно посмотреть здесь.
Комментарии: