P4549 【模板】裴蜀定理

裴蜀定理
裴蜀定理,就是关于 \(x,y\) 的不定方程 \(ax+by=c\) 有整数解的充要条件是 \(gcd(a,b)|c\),即\(c\)\(gcd(a,b)\)的倍数,那么\(c\)最小一定取\(gcd(a,b)\)

这是两个数,这道题求的是n个数,其实n个数也同理,就是扩展版的:
\(a_1,a_2...a_n\) 都是整数,且 \(\gcd(a_1...a_n)=d\) ,那么对于任意的整数 \(a_1x_1+a_2x_2...a_nx_n\) 都一定是\(d\)的倍数,特别地,一定存在整数 \(x_1...x_n\) 使 \(a_1x_1+a_2x_2+...a_nx_n=d\) 成立。

注意点

这道题有负数,所以要取绝对值。

int n;

int gcd(int a,int b)
{
    return b?gcd(b,a%b):a;
}

int main()
{
    cin>>n;

    int ans=0;
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
        ans=gcd(ans,abs(x));
    }
    cout<<ans<<endl;
    //system("pause");
    return 0;
}
posted @ 2021-02-24 20:23  Dazzling!  阅读(57)  评论(0编辑  收藏  举报