题目描述
输入两个不大于10的9次方的正整数,输出其最大公约数。
输入
输入两个正整数m和n,数据之间用空格隔开。
输出
输出一个整数,表示m和n的最大公约数。
样例输入
4 6
样例输出
2
先调到java再提交
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt(),
n = in.nextInt(),temp;
while(n % m != 0)
{
temp = m;
m = n % m;
n = temp;
}
System.out.print(m);
}
}
一定要有一个临时变量保存更新前的m或n的值.
辗转相除法(移步欧几里得算法_百度百科 (baidu.com)):
简单说明
a/b=c......d (如果d不等于0)再
b/d=e......f (如果f不等于0)再
d/f=g......h (如果h不等于0)再
...(余数为0,则除数为a b最大公约数)