Description
Given any integer 0 <= n <= 10000 not divisible by 2 or 5, some multiple of n is a number which in decimal notation is a sequence of 1's. How many digits are in the smallest such a multiple of n?
Input
Each line contains a number n.
Output
Output the number of digits.
Sample Input
3 7 9901
Sample Output
3 6 12
111111%n=(1%n+10%n+100%n+1000%n+10000%n)%n
11%n=(10%n+1%n)%n;
111%n=(110%n+1%n)=(10*11%n+1)%n
由此推出公式
int temp=1;int cnt=1;
while(temp!=0){
temp=(temp*10+1)%n;
cnt++;
}
cout<<cnt<<endl;
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n)){
int cnt=1;
int temp=1;
while(temp!=0){
temp=(temp*10+1)%n;
cnt++;
}
cout<<cnt<<endl;
}
}