zoukankan      html  css  js  c++  java
  • 欧拉函数

    欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)

    啊啊证明不会

    另外偶拉函数是积性函数

    啊啊但是公式背过了

    那么

    代码吧,我的理解,ret为

    该部分求出后,分数为n时的分子,(我们设qwq=n)那么,把分母变大的过程转化为n的减小,同时分子变大,当n不能分解时表示 分母*n=qwq,此时分子就是该数的欧拉函数值

    是不是特别简单

    但要考虑一个质因数出现多次情况,此时如果n只除一次该质因数,则无法化为最简,多以多次除,那么分子(第一次要*(改质因数-1))也要乘该质因数

    啊啊啊啊,就这么水过去了

    复杂度么(O(sqrt(n))的啦

    int getphi(int x){
        int ret=1;
        for(int i=1;prime[i]*prime[i]<=x;i++){
            if(x%prime[i]==0)
            {
                ret*=prime[i]-1;
                x/=prime[i];
                while(x%prime[i]==0)
                x/=prime[i],ret*=prime[i];
            }
        }
        if(x>1) ret*=x-1;
        return ret;
    }
  • 相关阅读:
    o9.17,习题
    09.17,二维数组,地图
    09.15,一维数组,冒泡排序
    09.11 小兔 成兔问题
    09.01,学习习题
    FTPHelper
    Wpf发送接收 win32消息
    win32Helper
    xml 封装类
    C# 多进程安全
  • 原文地址:https://www.cnblogs.com/sssy/p/7241596.html
Copyright © 2011-2022 走看看