欧拉函数与扩展欧几里得

我是真没看懂……把算法留在这把。
欧拉函数

int euler(int n){ //返回euler(n)
    int res=n,a=n;
    for(int i=2;i*i<=a;i++){
        if(a%i==0){
            res=res/i*(i-1);//先进行除法是为了防止中间数据的溢出
            while(a%i==0) a/=i;
        }
    }
    if(a>1) res=res/a*(a-1);
    return res;
}

扩展欧几里得

int exgcd(int a,int b,int &x,int &y){
    if(b==0){
        x=1;
        y=0;
        return a;
    }
    int r=exgcd(b,a%b,x,y);
    int t=x;
    x=y;
    y=t-a/b*y;
    return r;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/PancrasBohemian/article/details/79981203
个人分类: 做题
想对作者说点什么? 我来说一句

扩展欧几里得详解

2017年03月13日 4KB 下载

初等数论中求欧拉函数值程序

2011年06月17日 882KB 下载

没有更多推荐了,返回首页

不良信息举报

欧拉函数与扩展欧几里得

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭