51nod 1136 欧拉函数(少于或等于n的数中与n互质的数的数目,1也算)
2016-09-16 21:17
330 查看
51nod 1136 欧拉函数
欧拉函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0的整数。
欧拉公式的延伸:一个数的所有质因子之和是euler(n)*n/2。
欧拉函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0的整数。
欧拉公式的延伸:一个数的所有质因子之和是euler(n)*n/2。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <queue> #include <map> using namespace std; #define LL long long #define INF 0x3f3f3f3f #define PI acos(-1.0) #define E 2.71828 #define MOD 100000000 #define N 1001000 //模拟表达式 int euler(int n) { int cnt = n; for(int i = 2; i <= n; i++) { if(n%i == 0) { cnt -= cnt/i; while(n%i == 0) n/=i; } } return cnt; } int main() { int n; scanf("%d",&n); printf("%d\n",euler(n)); return 0; }
相关文章推荐
- android的Drawable详解
- android的Drawable详解
- 也论CTO
- 第七章 复用类
- HDU 5876 Sparse Graph(bfs求解补图中的单源最短路)——2016 ACM/ICPC Asia Regional Dalian Online
- 从尾到头打印链表<剑指offer>
- Launchpad中图标的删除
- 简易版扫雷
- [LeetCode]263. Ugly Number&264. Ugly Number II
- 关于虚拟机测试双网卡绑定高可用的问题
- 第八章 多态
- 任务1---打招呼
- 1325 - Distributing Chocolates
- __xchg 函数的用法
- PLSQL学习——控制语句
- 对于自定义类,重写equals方法和hashCode方法的技巧
- 第九章 接口
- Shell中生成一定范围内随机整数几种方法
- 重建二叉树
- 关于Spinner的使用