一. 思路:
两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。
二.代码解法(C++、Java)
C++
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,s;
cin>>n>>m;
while((s=n%m)!=0){
n=m;
m=s;
}
cout<<m<<endl;
return 0;
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// write your code here
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
Integer n=sc.nextInt();
Integer m=sc.nextInt();
Integer s;
while((s=n%m)!=0){
n=m;
m=s;
}
System.out.println(m);
}
}
}