天天看点

算法学习->gcd/extGcd/lcm

GCD、extGcd、LCM

#include<stdio.h>
#include<string.h>

//1、直接调用库函数
//头文件:#include<algorithm> 
//__gcd(a,b) 

//2、 
long long gcd(long long a,long long b){
    return (b==)?a:gcd(b,a%b);
}

//3、 ax+by=m
long long extGcd(long long a,long long b,long long &x,long long &y){
    if(b==){
        x=;
        y=;
        return a;
    }
    long long d=extGcd(b,a%b,y,x);
    y-=x*(a/b);
    return d;
} 
//有整数解时当且仅当m是d的倍数时。

long long lcm(long long a,long long b){
    return a*gcd(a,b)/b;
}


int main(){
    //具体操作....... 

    return ;
}