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;
即是说,若将n表示成质因子分解式
则有
则f为完全积性函数。
-欧拉函数,计算与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的质数的数目π(n)
整数拆分的数目P(n):一个整数能表示成正整数之和的方法的数目[2]
在数论中的积性函数:对于正整数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]
相关文章推荐
- 单调栈的介绍以及一些基本性质
- UVA10410 TreeReconstruction 树重建 (dfs,bfs序的一些性质,以及用栈处理递归 )
- 堆的一些性质以及证明
- HDU1452-积性函数-素因子分解-乘法逆元
- RTOS的一些重要概念以及代码维护中的相应问题举例
- 编写DLL时一些关键词解释以及举例
- hdu1452 因子和的积性函数
- Apache 源码包安装以及出现一些问题的解决 汇总
- cloudera manager 5.7 安装配置以及一些注意事项
- PHP学习:$_GET,$_POST,$_REQUEST和$_SERVER的一些用法,以及parse_str方法
- android的一些动画集合以及layoutAnimation的一些用法
- Android中 获取手机信息以及联网状态的一些工具类小结
- 最近工作的一些感想以及个人弱点
- django1.6 使用userprofile 以及一些关于用户系统的总结
- JavaScript的单线程性质以及定时器的工作原理
- 使用ADempiere 3.6.0 LTS的WEB访问以及其他的一些访问方法及工具(基于Ubuntu Desktop 12.04 LTS)
- linux文件夹目录以及一些基本的命令
- 关于MQ-4、MQ-138以及夏普PM2.5传感器的一些总结
- <福利>卡巴斯基一年免费以及一些使用软件
- 安卓开发一些常用工具的设置以及注意点