poj-2551-ones

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

题目大意:
输入n,求出不能整除3和5,却能整除d并且这个数各位都是1;
111111111111%9901==0;
#include <iostream>
#include <cstdio>

using namespace std;


int main()
{
    int n;

    while(~scanf("%d",&n))//EOF
    {
        int cnt=1;
        int num=1;

        while(num%n)
        {
            num=(num*10+1)%n;//直接找由1构成的数,判断是不是n的倍数
            cnt++;
        }
        printf("%d
",cnt);
    }

    return 0;
}

  

原文地址:https://www.cnblogs.com/jin-nuo/p/5281191.html