C语言入门基础题:最大公约数(三个数间取最大公约数)
1.题目描述
输入三个正整数x,y,z,求它们的最大公约数(Greatest common Divisor) g:最大的正整数g>=1满足 x,y,z都是g的倍数,即 (x mod g)=(y mod g)=(z mod g)= 0。
2.输入格式
输入一行三个正整数 x, y,z。
3.输出格式
输出一行一个整数 g,表示 x,y,z的最大公约数,
4.输入输出样例
输入1
12 34 56
输出1
2
输入2
28 70 28
输出2
14
5.说明/提示
样例解释
样例 1
12=2x6,34=2x17,56=2x28,g=2.
样例 2
28=14x2,70=14x5,28=14x2,g= 14。
数据规模
所有数据满足 1 ≤ x,y,z≤ 106
6.代码:
#include <stdio.h>// 函数声明:计算两个数的最大公约数
int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;
}int main() {int x, y, z;// 输入三个正整数scanf("%d %d %d", &x, &y, &z);// 求出x和y的最大公约数,然后与z求最大公约数int result = gcd(gcd(x, y), z);// 输出结果printf("%d\n", result);return 0;
}