poj 2251(同余)

时间:2023-03-10 03:48:28
poj 2251(同余)
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 = ,sum=;
while(){
sum = (sum*+)%n;
if(sum==) break;
len++;
}
printf("%d\n",len);
}
}