Ones
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 11461 | Accepted: 6488 |
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
题意:一个数不能被2或者5整除,问这个数被 11111....整除最小的1111....的位数是多少?
题解:利用同余就OK了,(x1+x2+x3...+xn)%n = (x1)%n+(x2)%n+...+(xn)%n
#include <cstdio> #include <cstring> #include <queue> #include <algorithm> #include <stdlib.h> using namespace std; int main(){ int n; while(scanf("%d",&n)!=EOF){ int len = 1,sum=0; while(1){ sum = (sum*10+1)%n; if(sum==0) break; len++; } printf("%d ",len); } }