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

    在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)。

    例如,因为1,3,5,7均和8互质。

    欧拉函数实际上是模n的同余类所构成的乘法群(即环的所有单位元组成的乘法群)的阶。这个性质与拉格朗日中值一起构成了欧拉定理的证明。

    #include <iostream>
    #include <vector>
    #include <set>
    #include <map>
    #include <queue>
    #include<cstring>
    #include <stack>
    #include <algorithm>
    using namespace std;
    #define ll long long
    #define N 200005
    #define INF 0x3f3f3f3f
    #define eps 0.00000001//偏差值1e8
    #define pi acos(-1.0)//高精度圆周率
    const int maxn = 2e7+2;
    const int maxp = 1010;    //点的数量
    #define fori for(i=0;i<n;i++)
    #define fori1 for(i=1;i<=n;i++)
    ll euler(ll n)
    {
        ll ret = n;
        for (ll i = 2; i * i <= n; i++)
        {
            if (n % i == 0)
            {
                ret -= ret / i;
                while (n % i == 0)
                    n /= i;
            }
        }
        if (n > 1)//存在大于sqrt(a)的质因子
    ret -= ret / n;
    return ret;
    }
    int main() 
    {
    ll n, t, q, ret;
    ll i, j, k, x;
    ll flag
    = 1;
    ll sum
    = 0,ans=0;
    cin
    >> n;
    cout
    << euler(n) << endl;
    }
  • 相关阅读:
    【18焦作网络赛 J】 大数开方
    最小圆覆盖
    高斯消元
    回文自动机 PAM
    后缀自动机 SAM
    后缀数组 SA
    左偏树(可并堆)
    动态树LCT(Link-Cut-Tree)
    职场自我推销10大金点子
    数据库笔记
  • 原文地址:https://www.cnblogs.com/ch-hui/p/12639946.html
Copyright © 2011-2022 走看看