如何求两个数的最大公约数?
步骤如下: 先用小的一个数除大的一个数,得第一个余数; 那么,最后一个除数就是所求的最大公约数。 |
注意:如果最后的除数是1,那么原来的两个数是互质数
举例:
//求75与47的最大公约数为 //用大的余小的,一直重复知道余为0。 75 % 47 = 28 47 % 28 = 19 28 % 19 = 9 19 % 9 = 1 9 % 1 == 0 所以最大公约数为1 所以他们是互质的 |
方法一:
int gys(int a,int b) {
return b == 0 ? a : gys(b,a % b);
}
方法二:
int gys(int a,int b) {
int c;
while(b % a != 0){
c = a;
a = b % a;
b = c;
}
return a;
}