Ones
Time Limit: 2 Seconds
Memory Limit: 65536 KB
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?
Sample Input 3 7 9901
Sample Output 3 6 12
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int solve(int n)
{
int x=1; //代表数字111……对n取模后的余数
for(int i=1;;i++)
{
if(x%n==0)return i; //直到余数变为0
x=(x*10+1)%n; //长度每增加一位余数变化
}
}
int main()
{
int n;
while(~scanf("%d",&n))
{
printf("%d\n",solve(n));
}
}