hdu 1286 找新朋友,欧拉函数
来源:互联网 发布:第一批网络主播黑名单 编辑:程序博客网 时间:2024/05/15 14:08
主题思想: 欧拉公式的使用。
欧拉公式是指求一个数n,从[1,n-1] 中与n互质的个数。
欧拉函数Euler(n)= n*(1-1/p(1))(1-1/p(2)) …(1-1/p(n))
p(1),p(2),p(n) ,是n的质数因子。
欧拉公式
int Euler(int n){ int ans=n; for(int i=2;i*i<=n;i++){ if(n%i==0){ ans=ans/i*(i-1);// ans=ans*(1-1/i)=ans*(i-1)/i 防止溢出先除i while(n%i==0) n/=i; } } if(n>1) ans=ans/n*(n-1); return ans;}
AC代码:
#include <iostream>#include<cstdio>#include<cmath>using namespace std;int Euler(int n){ int ans=n; for(int i=2;i*i<=n;i++){ if(n%i==0){ ans=ans/i*(i-1); } while(n%i==0) n/=i; } if(n>1) ans=ans/n*(n-1); return ans;}int main(){ int T; scanf("%d",&T); int n; while(T--){ scanf("%d",&n); printf("%d\n",Euler(n)); } return 0;}
阅读全文
0 0
- hdu找新朋友 欧拉函数
- hdu 1286 找新朋友(欧拉函数)
- hdu 1286 找新朋友(欧拉函数)
- hdu 1286 找新朋友(欧拉函数)
- [ACM] hdu 1286 找新朋友(欧拉函数)
- hdu 1286 找新朋友 (欧拉函数)
- HDU 1286 找新朋友(欧拉函数模板)
- 【欧拉函数】hdu 1286 找新朋友
- hdu 1286 找新朋友(欧拉函数)
- HDU 1286 找新朋友(欧拉函数)
- HDU 1286 找新朋友【欧拉函数】
- HDU ACM 1286-找新朋友-欧拉phi函数
- hdu 1286 找新朋友(欧拉函数)
- HDU 1286 找新朋友 (欧拉函数)
- HDU 1286 找新朋友(数学 欧拉函数)
- HDU 1286:找新朋友【欧拉函数】
- 找新朋友 HDU杭电1286 【欧拉函数】
- HDU 1286 找新朋友(欧拉函数)
- codevs 1001 舒适的路线 并查集
- Xcode 调试技巧 --常用命令和断点
- struts2处理流程
- OOP(面向对象编程)
- 【Java-Spring开发】aop注解 自定义切面的注解写法
- hdu 1286 找新朋友,欧拉函数
- angularjs2 组件的生命周期
- 自然数立方的乐趣
- TCP与UPD知识总结
- 51Nod 1242:斐波那契数列的第N项
- 【牛客网】直通bat-面试算法精品课_第2章 排序 2.5 归并排序练习题(JAVA版)
- hdu-1258-Sum It Up(DFS)
- 区别#define、enum和const
- A Dangerous Maze LightOJ