题目描述
输入两个正整数,输出其最大公约数。
输入
输入两个正整数m和n,数据之间用空格隔开。
输出
输出一个整数,表示m和n的最大公约数。
样例输入
4 6
样例输出
2
提示
请查阅欧几里得定理及辗转相处法。
思路:有两种方法求最大公约数,第一种,用 两个数中较大的数(假设是m)% 较小的数(n),较小的数每次循环减少1,直到余数为0时停止循环,这时较小的数就是最大公约数。第二种,用辗转相除法(可以搜一下)。
代码:(第二种方法)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int m = 0;
int n = 0;
int t = 0;
scanf("%d %d", &m, &n);
//辗转相除法求最大公约数
while (t=m%n) //当余数为0时,循环结束
{
m = n;
n = t;
}
printf("%d", n); //n就是最大公约数
return 0;
}