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