数学基础问题

(一)最大公约数 gcd(a,b)

        1、几何意义:两整点连线上的整点个数

        2、两个或多个整数的共有约数中最大的一个

        3、一条斜线段最多可分出多少个斜边,使平行与坐标轴的直角边为整数,

                                        即最多分出多少个整直角边三角形

     方法:辗转相除法:1)a = b * p + q then  gcd(b,q) | gcd(a,b)

                                    2)  q = a - b * p  then  gcd(a,b) | gcd(b,q)

                                    then gcd(a,b) == gcd(b,q) == gcd(b,a%b)

                                 

int gcd(int a,int b)
{
    if(b == 0) return a;
    return gcd(b, a % b);
}

猜你喜欢

转载自blog.csdn.net/qq_41097330/article/details/80146486