POJ 3696 HDU/HDOJ 2462 2008年合肥赛区
来源:互联网 发布:至尊宝官网软件下载 编辑:程序博客网 时间:2024/04/29 08:03
Description
Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his own lucky numberL. Now he wants to construct his luckiest number which is the minimum among all positive integers that are a multiple ofL and consist of only digit '8'.
Input
The input consists of multiple test cases. Each test case contains exactly one line containingL(1 ≤ L ≤ 2,000,000,000).
The last test case is followed by a line containing a zero.
Output
For each test case, print a line containing the test case number( beginning with 1) followed by a integer which is the length of Bob's luckiest number. If Bob can't construct his luckiest number, print a zero.
Sample Input
811160
Sample Output
Case 1: 1Case 2: 2Case 3: 0
Source
k*(10^n-1)/9
8*(10^n-1)/9=k*m (k是一个整数)
8/t*(10^n-1)=9m/t*k
#include<stdio.h>#include<string.h>#include<stdlib.h>typedef __int64 ll;ll prime[50000];bool flag[50000];void init(){ll i,j,num=0;for(i=2;i<50000;i++){if(!flag[i]){prime[num++]=i;for(j=i*i;j<50000;j=j+i)flag[j]=true;}}}ll gcd(ll a,ll b){if(b==0)return a;elsereturn gcd(b,a%b);}ll eular(ll n){ll i,res=1;for(i=2;i*i<=n;i++){if(n%i==0){n=n/i;res=res*(i-1);while(n%i==0){n=n/i;res=res*i;}}if(n==1)break;}if(n>1)res=res*(n-1);return res;}ll solve(ll n,ll fac[]){ll i,num=0;for(i=0;prime[i]*prime[i]<=n;i++){if(n%prime[i]==0){n=n/prime[i];fac[num++]=prime[i];while(n%prime[i]==0){n=n/prime[i];fac[num++]=prime[i];}}if(n==1)break;}if(n>1)fac[num++]=n;return num;}ll mmod(ll a,ll b,ll n){a=a%n;ll res=0;while(b){if(b&1){res=res+a;if(res>=n)res=res-n;}a=a<<1;if(a>=n)a=a-n;b=b>>1;}return res;}ll exmod(ll a,ll b,ll n){a=a%n;ll res=1;while(b>=1){if(b&1)res=mmod(res,a,n);a=mmod(a,a,n);b=b>>1;}return res;}void getans(ll n,ll mod){ll i,num,fac[100],ans=n;bool loop=true;while(loop){loop=false;num=solve(n,fac);for(i=0;i<num;i++){if(exmod(10,n/fac[i],mod)==1){loop=true;if(n/fac[i]<ans)ans=n/fac[i];}}n=ans;}printf("%I64d\n",ans);}int main(){ll n,t,l,phi;int cnt=1;init();while(scanf("%I64d",&n)!=EOF){if(n==0)break;printf("Case %d: ",cnt++);t=gcd(n,8);l=9*n/t;if(gcd(10,l)!=1){printf("0\n");continue;}phi=eular(l);getans(phi,l);}return 0;}
- POJ 3696 HDU/HDOJ 2462 2008年合肥赛区
- HDU 5491 The Next (2015年合肥赛区网络赛H题)
- HDU 5493 Queue (2015年合肥赛区网络赛J题)
- hdu-5489(2015网络赛合肥赛区)***
- HDU 5493 Queue (线段树)2015合肥赛区网络赛
- HDU/HDOJ 3718 成都赛区2010 Similarity
- 2016CCPC合肥赛区总结
- hdu 5961 传递 2016ACM/CCPC合肥赛区现场赛A
- hdu 5963 朋友 2016ACM/CCPC合肥赛区现场赛C
- hdu 5965 扫雷 2016ACM/CCPC合肥赛区现场赛E
- hdu 5968 异或密码 2016ACM/CCPC合肥赛区现场赛H
- hdu 5969 最大的位或 2016ACM/CCPC合肥赛区现场赛I
- HDU/HDOJ 3641 Treasure Hunting 2010年杭州赛区网络赛
- HDU/HDOJ 3714 Error Curves 2010年成都赛区
- HDOJ/HDU 3715 2-sat+二分 2010年成都赛区
- HDU/HDOJ 4002 2011大连赛区网络赛 数论
- HDU/HDOJ 4004 2011大连赛区网络赛 D题
- HDU/HDOJ 4038 2011成都赛区网络赛H题
- POJ1080 - DP(LCS变种)
- ASP.NET页面打开RTX客户端并实现单点登录
- poj 1185 炮兵阵地 //状态压缩DP
- 谷歌收购摩托罗拉,这消息太重磅了
- EHCache入门系列(二)–在工程中单独使用
- POJ 3696 HDU/HDOJ 2462 2008年合肥赛区
- JavaWeb项目下中文名文件的下载
- Sql批量删除/插入
- 标准库中allocator类的使用
- OpenVPN协议解析-网络结构之外
- EHCache入门系列(三)–在Hibernate 中运用EHCache
- 类加载方式读取Java项目中的文件
- C++编程人员容易犯的10个C#错误
- zju 1671 Walking Ant (bfs 暴搜题)