Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu
Submit Status Practice LightOJ 1078
Description
If an integer is not divisible by 2 or 5, some multiple of that number in decimal notation is a sequence of only a digit. Now you are given the number and the only allowable digit, you should report the number of digits of such multiple.
For example you have to find a multiple of 3 which contains only 1's. Then the result is 3 because is 111 (3-digit) divisible by 3. Similarly if you are finding some multiple of 7 which contains only 3's then, the result is 6, because 333333 is divisible by 7.
Input
Input starts with an integer T (≤ 300), denoting the number of test cases.
Each case will contain two integers n (0 < n ≤ 106 andn will not be divisible by2 or5) and the allowable digit(1 ≤ digit ≤ 9).
Output
For each case, print the case number and the number of digits of such multiple. If several solutions are there; report the minimum one.
Sample Input
3
3 1
7 3
9901 1
Sample Output
Case 1: 3
Case 2: 6
Case 3: 12
用了同余定理,这类题写多了就会了。
代码如下:
#include <stdio.h>
int main()
{
int u; //总次数
int y; //余数
int c; //次数
int a,b;
scanf ("%d",&u);
for (int i=1;i<=u;i++)
{
scanf ("%d %d",&a,&b); //被除数 基本数字
printf ("Case %d: ",i);
y=b%a;
c=1;
while (y)
{
y=(y*10+b)%a;
//printf ("%d\n",y) ;
c++;
}
printf ("%d\n",c);
}
return 0;
}