ALDS1_1_B-Greatest Common Divisor(最大公约数)

Greatest Common Divisor
Write a program which finds the greatest common divisor of two natural numbers a and b

Input
a and b are given in a line sparated by a single space.

Output
Output the greatest common divisor of a and b.

Constrants
1 ≤ a, b ≤ 109

Hint
You can use the following observation:

For integers x and y, if x ≥ y, then gcd(x, y) = gcd(y, x%y)

Sample Input 1
54 20
Sample Output 1
2
Sample Input 2
147 105
Sample Output 2
21


#include<iostream>
using namespace std;
int gcd(int x,int y){
  if(x < y) swap(x,y);
  int b;
  while(x % y != 0){
    b = x;
    x = y;
    y = b % y;
  }
  return y;
}
int main(){
  int x,y;
  cin >> x >> y;
  cout << gcd(x,y) <<endl;
  return 0;
}

发布了430 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zqhf123/article/details/105552171