首页 > 其他 > 详细

欧拉函数模板

时间:2014-08-13 18:39:07      阅读:271      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 筛选法欧拉函数
 2 int euler[3000001];
 3 void getEuler()
 4 {
 5     memset(euler,0,sizeof(euler));
 6     euler[1] = 1;
 7     for(int i = 2; i <= 3000000; i++)
 8         if(!euler[i])
 9             for(int j = i; j <= 3000000; j += i)
10             {
11                 if(!euler[j])
12                     euler[j] = j;
13                 euler[j] = euler[j]/i*(i-1);
14             }
15 }
View Code

 

求单个数的欧拉函数
long long eular(long long n)
{
long long ans = n;
for(int i = 2;i*i <= n;i++)
{
if(n % i == 0)
{
ans -= ans/i;
while(n % i == 0)
n /= i;
}
}
if(n > 1)ans -= ans/n;
return ans;
}

欧拉函数模板,布布扣,bubuko.com

欧拉函数模板

原文:http://www.cnblogs.com/lxm940130740/p/3910573.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!