欧拉函数题集
来源:互联网 发布:java中的多态 编辑:程序博客网 时间:2024/06/05 07:15
【定义】
在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明。φ函数的值
通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中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次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质。【题集】
【HUD 1286】(入门题)
【HDU 2588】
【HDU 2824 The Euler function】(欧拉函数的初始化,有时间可以再做做,边判断数字i是否为素数,边计算)
【HDU 4983】(较难的,有一个做法比较神奇,用map优化)
<span style="font-size:14px;">map<int,int> mp;int phi(int n){int i,mul,nn; if (n==1) return 1; if (mp.find(n)!=mp.end()) return mp[n]; for (i=2;i*i<=n;i++) { if (n%i==0) { nn=n; nn/=i; mul=(i-1); while (nn%i==0) { nn/=i; mul*=i; } mp[n]=phi(nn)*mul; return phi(nn)*mul; } } mp[n]=n-1; return n-1;}//main()函数里面不要忘了mp.clear(); </span>
【FZU 1969 GCD Extreme】
UVA 11424 GCD - Extreme (I) UVA 11426 GCD - Extreme (II)这三个是同一个题目,在uva上提交时要用long long
求s(n)
s(n) = sum(gcd(m,i)(i<m)) (1<=m<=n)
预处理出s(n),然后调用
令s(n) = f(1) + f(2) + f(3) + …… f(n)
g[ x ] 表示gcd( x , k ) = i的个数
因为x/i 与 k/i一定互质
所以g[ x ] = phi(x/i)
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <string>using namespace std;#define inf 1000005#define ll __int64int p[inf];ll f[inf], sum[inf];void is_prime(){memset(p, 0, sizeof(p));p[1] = 1;for(int i = 2; i < inf; i++){if(p[i] == 0){for(int j = i; j < inf; j+=i){if(p[j] == 0) p[j] = j;p[j] = p[j]/i*(i-1);}}}}int main(){is_prime();memset(f, 0, sizeof(f));f[1] = 0;for(int i = 1; i < inf; i++){for(int j = 2*i; j < inf; j+=i){f[j] += (ll)p[j/i]*i;}}sum[1] = 0;for(int i = 2; i < inf; i++) sum[i] = sum[i-1] + f[i];int n;while(~scanf("%d", &n)){if(n == 0) break;printf("%I64d\n", sum[n]);}return 0;}
- 欧拉函数题集
- 欧拉函数模板题
- 欧拉函数 模板题 POJ2407 Relatives
- FOJ 1012 欧拉函数水题
- poj2407欧拉函数基础题
- 4173: 数学 欧拉函数 思路题
- HDU 1286 欧拉函数入门题
- hdu 1286 欧拉函数模版题
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- maven 新建web项目
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作
- Android中ListView(gridview)的item中有button等子点击控件时不能响应点击事件的原因
- php中mysql_real_escape_string+sprintf防止sql注入
- 如何验证远程服务器上文件是否存在
- 欧拉函数题集
- Android :关于小数相加出现很多位的 BigDecimal 也会有时不靠谱原因
- 如何取得nginx做反向代理时的真实IP?
- C++友元
- Java很容易出错的一些问题
- Java parseInt()和parseFloat()的用法
- vpnservice 详解
- Android 6.0“棉花糖”默认禁用悬浮窗口——解决方案
- Java学习之Iterator(迭代器)的一般用法