POJ3696【欧拉函数+欧拉定理】
来源:互联网 发布:免费学尤克里里的软件 编辑:程序博客网 时间:2024/04/29 08:59
题意:
求最小T,满足L的倍数且都由8组成,求长度;
思路:
很强势的福利:点
图片拿出去食用更优
//#include<bits/stdc++.h>#include<cstdio>#include<math.h>#include<string.h>#include<algorithm>using namespace std;typedef long long LL;LL eluer(LL n){ LL res=n,a=n; for(LL i=2;i*i<=a;i++) if(a%i==0) { res=res/i*(i-1); while(a%i==0) a/=i; } if(a>1) res=res/a*(a-1); return res;}LL multi(LL x,LL y,LL mod){ LL ans=0; while(y) { if(y&1) ans=(ans+x)%mod; x=(x<<1)%mod; y>>=1; } return ans;}LL quickmul(LL x,LL g,LL mod){ LL ans=1; while(g) { if(g&1) ans=multi(ans,x,mod)%mod; x=multi(x,x,mod)%mod; g>>=1; } return ans;}int main(){ int cas=1; LL L,A,B,res,ans; while(~scanf("%lld",&L)&&L) { A=L/__gcd(8LL,L); printf("Case %d: ",cas++); if(__gcd(10LL,9*A)!=1) puts("0"); else { res=eluer(9*A); LL q=sqrt((double)res); bool flag=false; for(LL i=1;i<=q;i++) { if(res%i==0&&quickmul(10,i,9*A)==1) { ans=i; flag=true; break; } } if(!flag) { for(LL i=q;i>=1;i--) { if(res%i==0&&quickmul(10,res/i,9*A)==1) { ans=res/i; break; } } } printf("%lld\n",ans); } } return 0;}
0 0
- POJ3696【欧拉函数+欧拉定理】
- POJ3696 The Luckiest number【欧拉函数】
- poj3696 欧拉函数, 欧拉方程
- 【POJ3696】The Luckiest Number-欧拉定理+快速幂
- POJ3696 The Luckiest number 欧拉函数应用
- poj3696.The Luckiest number (阶 && 欧拉函数 && 欧几里德)
- 欧拉函数与欧拉定理
- 欧拉函数与欧拉定理
- 欧拉函数&&欧拉定理
- 欧拉定理,欧拉函数
- 欧拉函数与欧拉定理
- 欧拉函数/欧拉定理
- 欧拉函数和欧拉定理
- 欧拉函数,欧拉定理模板
- 欧拉函数与欧拉定理
- 欧拉定理 和 欧拉函数
- 欧拉函数与欧拉定理
- 欧拉函数与欧拉定理
- VSphere client 虚拟机克隆及网卡报错处理
- MFMessageCompose 和 MFMailComposeViewControlle
- 【Apache ZooKeeper】理解ZooKeeper中的ZNodes
- webservice简单学习
- 多线程开发(二)-Thread、 Looper与Handler关系解密
- POJ3696【欧拉函数+欧拉定理】
- 获取Android手机屏幕宽高(虚拟按键)
- android studio 编写robotium测试本工程的apk
- Android HTTP操作(二)
- 关于Burp Suite不能抓包的解决方法
- 使用cas的几个问题
- 自定义一个SerializableBitmap
- 【Apache ZooKeeper】官方文档
- socat 编译成为arm64 版本的可执行文件