【数论】【素数】素数相关基础——欧拉函数与欧拉定理
2014-07-15 20:12
393 查看
欧拉定理与欧拉函数在数论方面的应用十分广泛,几乎所有的形如a^n % k = 1的东西都可以往上靠。
这里暂时不细说怎么用,先讲基础内容。
1、 欧拉函数
欧拉函数 φ(n)表示不超过n且与n互素的正整数的个数 。
计算公式为: φ(n)=n*(1-1/p1)*(1-1/p2)*…其中p1,p2…为n的质因数
2、欧拉定理
若a,n是正整数,且a,n互质,则有a^ φ(n) mod n =1。
实际上这是费马小定理的一个推广。
我们看费马小定理:a^(p-1) % p =1,而对于欧拉函数φ(n),当n为素数时,根据其实际意义,显然φ(n)=n-1,带入欧拉定理的式子,其实就得到了飞马小定理。
3、欧拉函数打表
在实际运用中,用朴素方法去一次次求欧拉函数的值是很慢的,所以我们可以采用打表的方法来提高效率。
欧拉函数的打表利用了类似于筛选法打表的思路:枚举i,如果i是一个质数,那么把i的整倍数都乘上(1-1/i),注意实际操作中我们应该是/i*(i-1)。
for (int i=1;i<=100000;i++){
euler[i]=i;
}
for (int i=1;i<=100000;i++){
if (prime[i]==0){
for (int j=i;j<=100000;j+=i){
euler[j]=euler[j]/i*(i-1);
}
}
}
prime数组就是我们之前用筛选法打出来的素数表。
这里暂时不细说怎么用,先讲基础内容。
1、 欧拉函数
欧拉函数 φ(n)表示不超过n且与n互素的正整数的个数 。
计算公式为: φ(n)=n*(1-1/p1)*(1-1/p2)*…其中p1,p2…为n的质因数
2、欧拉定理
若a,n是正整数,且a,n互质,则有a^ φ(n) mod n =1。
实际上这是费马小定理的一个推广。
我们看费马小定理:a^(p-1) % p =1,而对于欧拉函数φ(n),当n为素数时,根据其实际意义,显然φ(n)=n-1,带入欧拉定理的式子,其实就得到了飞马小定理。
3、欧拉函数打表
在实际运用中,用朴素方法去一次次求欧拉函数的值是很慢的,所以我们可以采用打表的方法来提高效率。
欧拉函数的打表利用了类似于筛选法打表的思路:枚举i,如果i是一个质数,那么把i的整倍数都乘上(1-1/i),注意实际操作中我们应该是/i*(i-1)。
for (int i=1;i<=100000;i++){
euler[i]=i;
}
for (int i=1;i<=100000;i++){
if (prime[i]==0){
for (int j=i;j<=100000;j+=i){
euler[j]=euler[j]/i*(i-1);
}
}
}
prime数组就是我们之前用筛选法打出来的素数表。
相关文章推荐
- 数论基础_素数相关
- 【数论】【素数】素数相关基础——获得素数与判别素数
- 【数论】【素数】素数相关基础——整数分解
- 【数论】【素数】素数相关基础——基础操作
- 【基础数论】十分钟学会计算欧拉函数
- 数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)
- hdu 2462(数论:欧拉定理+快速幂取模优化+欧拉函数)
- 求质数表 素数筛求素数 效率比较 数论相关
- [kuangbin带你飞]专题十四 数论基础 F - Goldbach`s Conjecture (线性素数筛)
- hdu1695 综合数论 欧拉函数 分解质因子 容斥原理 打印素数表 各种模板
- POJ2478 Farey Sequence 欧拉函数与素数 数论题
- 数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)
- 【数论】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 数论快速入门(同余、扩展欧几里德、中国剩余定理、大素数测定和整数分解、素数三种筛法、欧拉函数以及各种模板)
- 理论: 数论(3):素数基础
- 数论之 素因子分解,素数筛选法,欧拉函数和扩展欧几里得算法 (整理)
- 数论基础_欧拉函数
- 数论基础题目八题【欧几里得】【筛法素数】【中国剩余定理】
- 【数论内容】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 1370 - Bi-shoe and Phi-shoe(LightOJ1370)(数论基础,欧拉函数)