51Nod-1136-欧拉函数
2016-07-26 13:32
225 查看
ACM模版
Input
输入一个数N。(2 <= N <= 10^9)
Output
输出Phi(n)。
Input示例
8
Output示例
4
描述
对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler’s totient function、φ函数、欧拉商数等。例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质。Input
输入一个数N。(2 <= N <= 10^9)
Output
输出Phi(n)。
Input示例
8
Output示例
4
题解
因为2 <= N <= 10^9,所以需要用到公式直接单独求解。代码
#include <iostream> #include <cmath> using namespace std; long long euler(long long x) { long long i, res = x; for (i = 2; i < (int)sqrt(x * 1.0) + 1; i++) { if (!(x % i)) { res = res / i * (i - 1); while (!(x % i)) { x /= i; // 保证i一定是素数 } } } if (x > 1) { res = res / x * (x - 1); } return res; } int main(int argc, const char * argv[]) { long long N; while (cin >> N) { cout << euler(N) << '\n'; } return 0; }
参考
欧拉函数PHI相关文章推荐
- 欧拉函数
- 线性筛法及扩展
- UVA11426GCD - Extreme (II)
- HDU 1695 GCD
- Farey Sequence(poj2478)
- 【欧拉函数】hdu 1286 找新朋友
- 欧拉函数
- 欧拉函数
- 欧拉函数
- poj_3910 GCD Determinant
- hdu1695 综合数论 欧拉函数 分解质因子 容斥原理 打印素数表 各种模板
- 欧拉函数
- LightOj 1298
- LightOj 1375(欧拉变形)
- HDU 1695(容斥+欧拉函数+素数分解)
- HDU 3501(欧拉函数)
- 同余式。。
- POJ 3696 : The Luckiest number - 欧拉函数,快速幂[数论好题]
- 数论 约数定理 约数和定理 欧拉定理
- poj 2478 Farey Sequence