求最大公约数是编程里面一道非常经典的算法题,本实现,先求3个数的最小数,然后用变量i从1,一直循环到最小数的一半,如果x,y,z都能整除i,那么i即为x,y,z的公约数。
[信息与未来 2018] 最大公约数
题目描述
输入三个正整数 x,y,zx,y,zx,y,z,求它们的最大公约数(Greatest Common Divisor)ggg:最大的正整数 g≥1g ≥1g≥1,满足 x,y,zx,y,zx,y,z 都是 ggg 的倍数,即 (x mod g)=(y mod g)=(z mod g)=0(x \bmod g) = (y \bmod g) = (z \bmod g) = 0(xmodg)=(ymodg)=(zmodg)=0。
输入格式
输入一行三个正整数 x,y,zx,y,zx,y,z。
输出格式
输出一行一个整数 ggg,表示 x,y,zx,y,zx,y,z 的最大公约数。
样例 #1
样例输入 #1
12 34 56
样例输出 #1
2
样例 #2
样例输入 #2
28 70 28
样例输出 #2
14
提示
样例解释
样例 111
12=2×6,34=2×17,56=2×28,g=212 = 2 × 6, 34 = 2 × 17, 56 = 2 × 28, g = 212=2×6,34=2×17,56=2×28,g=2。
样例 222
28=14×2,70=14×5,28=14×2,g=1428 = 14 × 2, 70 = 14 × 5, 28 = 14 × 2,g = 1428=14×2,70=14×5,28=14×2,g=14。
数据规模
所有数据满足 1≤x,y,z≤1061 ≤ x,y,z ≤ 10^61≤x,y,z≤106。
本题原始满分为 15pts15\text{pts}15pts。
Scratch的实现
考虑代码比较长,看的不是太清楚,将源代码上传到csdn,下载地址:https://download.csdn.net/download/rogeliu/89358690
接下来我会不断用scratch来实现信奥比赛中的算法题,感兴趣的请关注,我后续将继续分享相关内容