欧拉函数
2015-09-18 21:12
260 查看
欧拉函数的值 = 不超过m 并且 和m互质 的数的个数
/* 求欧拉函数的值 O(sqrt(n)) */ int euler_phi(int n){ int res = n; for(int i = 2; i * i <= n; i++){ if(n % i == 0){ res = res / i * (i-1); for(; n % i == 0; n /= i); } } if(n != 1) res = res / n * (n-1); return res; } /* O(n)时间复杂度 筛出欧拉函数的表 */ int euler[maxn]; void euler_phi2(){ for(int i = 0; i < maxn; i++) euler[i] = i; for(int i = 2; i < maxn; i++){ if(euler[i] == i){ for(int j = i; j < maxn; j += i) euler[j] = euler[j]/i*(i-1); } } }
相关文章推荐
- Bash shell 快捷键
- C语言之可重入函数 && 不可重入函数
- 猴子分桃子问题
- GPIO_Mode
- 时间复杂度标记与分析(算法分析与设计)
- 使用Dojo的 defer(延迟) 方法的基本知识
- 网络图可视化工具
- HDU 2795 Billboard(线段树单点更新)
- 如何通过Intent启动一个已经安装好的APP
- iOS数据请求之post异步同步
- poj3255
- c、c++重难点
- Intel格式和AT&T格式汇编区别
- access vba打开另一个数据库并关闭当前数据库的代码
- 从此以后,使用Git
- 分享C++基础和MFC编程的优秀学习资料
- 因果图小例子
- POJ 1743 Musical Theme(2.2 不可重叠最长重复子串)
- Windows下如何构建和发布Python模块
- android BrocadcastReceiver