码迷,mamicode.com
首页 > 其他好文 > 详细

欧拉函数模板

时间:2020-04-06 00:16:48      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:names   image   乘法   命名   alt   src   技术   ima   for   

在数论中,对正整数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;
}

 

欧拉函数模板

标签:names   image   乘法   命名   alt   src   技术   ima   for   

原文地址:https://www.cnblogs.com/ch-hui/p/12639946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!