zoukankan      html  css  js  c++  java
  • 裴蜀定理

    #include <bits/stdc++.h>
    #define lowbit(x) x&-x
    using namespace std ;
    typedef long long LL;
    inline LL read(){ LL x=0; int f=1; char ch=getchar();
        while(!isdigit(ch)) { if (ch=='-') f=-1; ch=getchar(); }
        while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar(); return x*f;
    }
    int n;
    int ans;
    signed main() {
        n=read();
        for(register int i=1;i<=n;i++) {
            int tmp=read();
            if(!tmp) tmp*=-1;
            ans = __gcd(ans , tmp);
        }
        cout << abs(ans) << endl ;
        return 0;
    }

    裴蜀定理内容

    ax+by=c,xZ,yZ∗成立的充要条件是gcd(a,b)c。Z∗表示正整数集。

    证明

    s=gcd(a,b),显然sa,并且sb

    又因为x,yZ

    所以sax,sby

    显然要使得之前的式子成立,则必须满足cab的公约数的倍数

    又因为xy是正整数

    所以c必然是a,b最大公约数的倍数。

    因此,证得该定理成立

    针对这道题

    上述裴蜀定理针对的是两个变量。那么我们很自然的就想到这样的定理能否推广到多个变量呢?显然可以,证明方法同上。

    那这个题不就是推广后的定理的裸题吗QAQ。我们只需要对这所有的数字求一个gcd,值得注意的是不要忘记数据中有负数,要将其变为正数再求gcd。

    不存在十全十美的文章 如同不存在彻头彻尾的绝望
  • 相关阅读:
    自签证书的创建与导入
    Linux常用命令
    JS数据类型
    call和apply
    css浮动Float
    vue 列表进入详情后,返回保持原位置
    vue-cli2升级为vue-cli3
    html2canvas使用中的小问题
    jquery点击空白处关闭弹窗
    template.js中template模板中onclick传参
  • 原文地址:https://www.cnblogs.com/qf-breeze/p/10526804.html
Copyright © 2011-2022 走看看