51nod1262 扔球(欧拉函数)
来源:互联网 发布:js 文字字数限制 编辑:程序博客网 时间:2024/05/19 23:26
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1262
题意;从圆上一点扔一个球,经过n次反弹第一次回到起点;
分析:
设地点为S,经过n次反弹回到起点S 则说明走过了n+1条边
设每次可以走a条边 则 GCD(a,n+1)=1 LCM(a,n+1)=a*(n+1);即a,n+1互质;
反证:若GCD(a,n+1)=d,LCM(a,n+1)=a*(n+1)/d;则说明每步最少要走(n+1)/d条边,
经过(n+1)/d-1此反弹回到起点 (n+1)/d-1<n (d>=2)时, 因此题目的方案数即为1,n+1内
有多少个数与n+1互质,即n+1的欧拉函数值。
代码如下:
#include <iostream>using namespace std;int phi(int n){ int rea = n; for(int i=2;i*i<=n;i++){ if(n%i==0){ rea =rea - rea / i; while(n%i==0) n/=i; } } if(n>1) rea= rea - rea / n; return rea;}int main(){ int n; while(cin>>n){ cout<<phi(n+1)<<endl; } return 0;}
0 0
- 51nod1262 扔球(欧拉函数)
- 51nod - 1136 欧拉函数(欧拉函数)
- 51nod 1136 欧拉函数(欧拉函数)
- 51NOD 1262 扔球(欧拉函数)
- 51nod 1262 扔球 (欧拉函数)
- 51nod-1262 扔球(欧拉函数)
- 51Nod1136--欧拉函数
- 51nod_1136 欧拉函数
- 欧拉函数(模板)
- 欧拉函数(转)
- 欧拉函数(一)
- 欧拉函数(二)
- 欧拉函数(数学)
- hdu4556(欧拉函数)
- 欧拉函数(模板)
- 欧拉函数(模板)
- LghtOJ1370(欧拉函数)
- poj2407Relatives(欧拉函数)
- Invalid use of SingleClientConnManager: connection still allocated解决方案
- BlazeDS中Java与ActionScript类型对应表
- hdu 1052
- Chrome 自带的 user agent stylesheet 与 html中<!DOCTYPE>标签
- MQ的安装和下载
- 51nod1262 扔球(欧拉函数)
- Android 自动完全组件(SocialTokenAutoComplete)—— 一种更友好的方式@某人在社交应用中
- struts2随笔(一)Action、struts.xml、Interceptor细节
- vc环境下的窗口程序
- sleep()和wait()有什么区别?
- java Jackson 库操作 json 的基本演示
- Java内部类总结 (吐血之作)
- OSGI bundle 动态更新
- STARTUP Database failed ORA-38760 to turn on Flashback Database (Doc ID 1554596.1)