概念:
在数论,对正整数n,欧拉函数是小于n的数中与n互质的数的数目。
性质:
,其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4
若n是质数p的k次幂,
,因为除了p的倍数外,其他数都跟n互质。
设n为正整数,以 φ(n)表示不超过n且与n互
素的正整数的个数,称为n的欧拉函数值,这里函数
φ:N→N,n→φ(n)称为欧拉函数。
欧拉函数是积性函数——若m,n互质,
特殊性质:当n为奇数时,
, 证明与上述类似。
若n为质数则
模板:
void Init_oula()///预处理求出1到N的欧拉函数的值 { int i,j; memset (a,0,sizeof(a)); for (i = 2 ; i <= N;i++) { ///筛选求a if (!a[i]) { for (j = i ; j <= N; j += i) { if (!a[j]) a[j ] = j; a[j] = a[j] / i * (i-1) ; } } } /** for(int i = 1;i <= 20;i++){ printf("a[%d] = %d\n",i,a[i]); } */ }
时间: 2024-11-10 14:05:11