【问题描述】
给定两个正整数,求他们的最大公约数。
【输入格式】
输入一行,包含两个正整数(<1000000000)
【输出】
一个整数,两个正整数的最大公约数。
【范例】
6 9
3
法1:最常规
//最大公约数
#include<iostream>
using namespace std;
int main()
{
int num1, num2, maxGY;
cin >> num1 >> num2;
if (num2 > num1)
{
for (int i = 2; i <= num2; i++)
{
if (num1 % i == 0 & num2 % i== 0)
{
if (i > maxGY)
{
maxGY = i;
}
}
}
}
else
{
for (int i = 2; i <= num1; i++)
{
if (num1 % i == 0 & num2 % i== 0)
{
if (i > maxGY)
{
maxGY = i;
}
}
}
}
cout << maxGY << endl;
return 0;
}
法二:辗转相除
#include <bits/stdc++.h>
using namespace std;
int GCD(int a,int b)
{
if(a%b==0)
return b;
GCD(b,a%b);
}
int main()
{
int m,n;
cin>>m>>n;
cout<<GCD(m,n);
}