1- Найдите НОД по модулю
- Присвойте a значение b и b значение остатка от деления a на b.
- Повторяйте до тех пор, пока остаток не станет равным нулю.
Example:
#include< stdio.h>
int main()
{
int a,b,r,x,y;
do
scanf("%d",& a);
while (a<=0);
do
scanf("%d",& b);
while (b<=0);
если (a> б)
{
x=b;
r=a%b;
}
else
{
x=a;
r=b%a;
}
while(r!=0)
{
y=x;
x=r;
r=y%x;
}
printf("%d",x);
возвращаем 0;
}
2- Найти НОД рекурсивным методом вычитания
Если a и b — два натуральных числа, то мы имеем следующие арифметические свойства:
Пример:
PGCD программа с рекурсией.
int PGCD(int a, int b)
{
if(a==b)
{
return a;
}
else
{
if(a> (b)
возврат PGCD(a-b, b);
else
return PGCD(a, b-a);
}
}
Википедия: Наибольший общий делитель
Википедия: Расширенный алгоритм Евклида
Commentaires (12)
Connectez-vous pour commenter
Rejoignez la discussion et partagez vos connaissances avec la communauté
Excellent tutoriel !
N'hésitez pas si vous avez des questions.