欧拉函数模板

int euler(int n){
    int ret=n,a=n;
    for (int i=2;i*i<=n;++i){
        if (a%i==0) ret=ret/i*(i-1);
        while(a%i==0) a/=i;
    }
    if (a>1) ret=ret/a*(a-1);
    return ret;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容