1.辗转相除法
以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数
#include <iostream>
using namespace std;
int o(int a,int b)
{
int c = a%b;
while(c != 0)
{
a = b;
b = c;
c = a%b;
}
return b;
}
int main()
{
int a , b;
cin >> a >> b;
cout << o(a,b) ;
return 0;
}
2.辗转相减法
#include <iostream>
using namespace std;
int j(int a,int b)
{
int c;
if(a == b) return a;
else
{
if(a > b)
{
c = a - b;
while (c != 0)
{
a = b;
b = c;
c = a-b;
}
}
else
{
c = b - a;
while(c != 0)
{
b = a;
a = c;
c =b - a;
}
}
return a;
}
}
int main()
{
int a,b;
cin >> a >> b;
cout << j(a,b);
return 0;
}