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

欧拉函数和整除函数

时间:2016-07-11 18:34:56      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:

1  欧拉函数

定义:

若n为正整数,不大于n且与n互素的数的个数成为欧拉函数,记为φ(n)。

公式:

φ(n)=n*(1-1/p1)*(1-1/p2)*……*(1-1/pn),其中p1、p2……pn为n的质因数;

若n为素数,φ(n)=n-1。

例如:

24=2*2*2*3

φ(24)=24*(1-1/2)*(1-1/3)=8

代码:

int oula(int n)
{
     int a=n,i;
     for(i=2; i<=n; i++)
         if(n%i==0)//第一次找到的必为素因子
         {
             a=a-a/i;
             while(n%i==0)
                 n/=i;//把该素因子全部约掉
         }
     return a;
}

2   整除函数(求正约数个数)

定义:

正整数n的正约数的个数,记为d(n)。

公式;

若n=p1α1*p2α2*……*pnαn

d(n)=(α1+1)*(α2+1)*......*(αn+1)。

例如;

d(24)=(3+1)*(1+1)=8。

欧拉函数和整除函数

标签:

原文地址:http://www.cnblogs.com/jyhywh/p/5660838.html

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