您的位置:首页 > 其它

Hdu1452 因子和的积性函数 以及积性函数的一些性质和举例

2012-09-25 15:00 429 查看
在非数论的领域,积性函数指所有对于任何a,b都有性质f(ab)=f(a)f(b)的函数。  

在数论中的积性函数:对于正整数n的一个算术函数 f(n),若f(1)=1,且当a,b互质时f(ab)=f(a)f(b),在数论上就称它为积性函数。

若对于某积性函数 f(n),就算a, b不互质,也有f(ab)=f(a)f(b),则称它为完全积性的。[1]

s(6)=s(2)*s(3)=3*4=12;

s(20)=s(4)*s(5)=7*6=42;

再看 s(50)= 1+2+5+10+25+50=93=3*31=s(2)*s(25),s(25)=1+5+25=31.

这在数论中叫积性函数,当gcd(a,b)=1时 s(a*b)=s(a)*s(b);

如果p是素数

s(p^n)=1+p+p^2+...+p^n= (p^(n+1)-1) /(p-1) (1)

例 hdu1452 Happy 2004

计算因子和 s(2004^X) mod 29 ,

2004=2^2 *3 *167

2004^X=4^X * 3^X *167^X

s(2004^X) ) = (s(2^2X))) * (s(3^X))) * (s(167^X)))

167%29=22

s(2004^X) ) = (s(2^2X))) * (s(3^X))) * (s(22^X)))

a=s(2^2X)=(2^(2X+1)-1) //根据(1)

b=s(3^X)= (3^(X+1)-1)/2 //根据(1)

c=s(22^X)= (22^(X+1)-1)/21 //根据(1)

%运算法则 1. (a*b) %p= ( a%p) *(b%p)

%运算法则 2. (a/b) %p= ( a *b^(-1)%p) 除法的

s(2004^X)=(2^(2X+1)-1)* (3^(X+1)-1)/2 *(22^(X+1)-1)/21

(a*b)/c %M= a%M* b%M * inv(c)

c*inv(c)=1 %M
模为1的所有数 inv(c)为最小可以被c整除的

inv(2)=15, inv(21)=18 2*15=1 mod 29, 18*21=1 mod 29

s(2004^X)=((2^(2X+1)-1)* (3^(X+1)-1)/2 *(22^(X+1)-1)/21)mod
29

=((2^(2X+1)-1)* (3^(X+1)-1)*15 *(22^(X+1)-1)*18)mod29

b^(-1)是 b的逆元素(%p)即上面的inv

2的逆元素是15 ,因为2*15=30 % 29=1 % 29

21的逆元素是18 ,因为21*18=378% 29 =1 % 29

因此

a=(powi(2,2*x+1,29)-1)% 29;

b=(powi(3,x+1,29)-1)*15 % 29;

c=(powi(22,x+1,29)-1)*18 % 29;

ans=(a*b)% 29*c % 29;



#include <iostream>  
#include <cstdio>  
#include <cmath>  
  
using namespace std;  
  
int _pow( int a, int n )  
{  
    int b = 1;  
    while( n > 1 )  
        if( n % 2 == 0 )  
        {  
            a = ( a * a ) % 29;  
            n /= 2;  
        }  
        else  
        {  
            b = b * a % 29;  
            n--;  
        }  
        return a * b % 29;  
}  
int main()  
{  
    int X;  
    int a, b, c;  
    while( scanf("%d",&X), X )  
    {  
        a = _pow( 2, 2 * X + 1 );  
        b = _pow( 3, ( X + 1 ) );  
        c = _pow( 22, ( X + 1 ) );  
        printf("%d\n",( a - 1 ) * (( b - 1 ) * 15) * ( c - 1 ) * 18 % 29) ; 
    }  
    return 0;  
}




性质1

  积性函数的值完全由质数的幂决定,这和算术基本定理有关。

即是说,若将n表示成质因子分解式

则有

性质2

若f为积性函数且有

则f为完全积性函数。

积性

  φ(n)
欧拉函数,计算与n互质的正整数之数目

  μ(n)
莫比乌斯函数,关于非平方数的质因子数目

  gcd(n,k)-最大公因子,当k固定的情况

  d(n)
-n的正因子数目

  σ(n)
-n的所有正因子之和

  σk(n)-因子函数,n的所有正因子的k次之和,当中k可为任何复数

  1(n)
-不变的函数,定义为 1(n) = 1 (完全积性)

  Id(n)-单位函数,定义为 Id(n) = n(完全积性)

  Idk(n)-幂函数,对于任何复数、实数k,定义为Idk(n) = n^k(完全积性)

  ε(n)
-定义为:若n = 1,ε(n)=1;若 n > 1,ε(n)=0。别称为“对于狄利克雷卷积的乘法单位”(完全积性)

  λ(n)
-刘维尔函数,关于能整除n的质因子的数目

  γ(n),定义为γ(n)=(-1)^ω(n),在此加性函数ω(n)是不同能整除n的质数的数目

另外,所有狄利克雷特征均是完全积性的[1]

非积性

  冯·曼戈尔特函数:当n是质数p的整数幂,Λ(n)=ln(p),否则Λ(n)=0

  不大于正整数n的质数的数目π(n)

  整数拆分的数目P(n):一个整数能表示成正整数之和的方法的数目[2]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: