Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 11461 | Accepted: 6488 |
Description
Input
Output
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\n",len); } }