8是中国的幸运数字,如果一个数字的每一位都由8构成则该数字被称作是幸运数字。
现在给定一个正整数L,请问至少多少个8连在一起组成的正整数(即最小幸运数字)是L的倍数。
输入格式
输入包含多组测试用例。
每组测试用例占一行,包含一个整数L。
当输入用例L=0时,表示输入终止,该用例无需处理。
输出格式
每组测试用例输出结果占一行。
结果为“Case 1: ”+一个整数N,N代表满足条件的最小幸运数字的位数。
如果满足条件的幸运数字不存在,则N=0。
数据范围
1≤L≤2∗109
输入样例:
8
11
16
0
输出样例:
Case 1: 1
Case 2: 2
Case 3: 0
解题思路:像1,11,111,..., 2,22,222,..., 3,33,333,..., 这样的一共x位且每位数都为y的数字可以用公式:y*(10^x-1)/9表示,所以题目中的每一位都由8构成则该数字可以表示为:8*(10^x-1)/9,且与L满足模L同余,余数同为0,即:
[8*(10^x-1)/9]%L=0,把9乘过去得[8*(10^x-1)]%(9*L)=0
取d=gcd(8,L),同除以d得[8/d*(10^x-1)]%(9*L/d)=0,
因为8和9*L同除以其最大公约数后得到的8/d和9*L/d这两个数一定是