Given a positive integer K, you need find the smallest positive integer N such that N is divisible by K, and N only contains the digit 1.
Return the length of N.  If there is no such N, return -1.
Example 1:
Input: 1
Output: 1
Explanation: The smallest answer is N = 1, which has length 1.
Example 2:
Input: 2
Output: -1
Explanation: There is no such positive integer N divisible by 2.
Example 3:
Input: 3
Output: 3
Explanation: The smallest answer is N = 111, which has length 3.
Note:
1 <= K <= 10^5
class Solution:
    # https://leetcode.com/problems/smallest-integer-divisible-by-k/discuss/801679/Simple-elegant-code-with-explanation-and-example
    def smallestRepunitDivByK(self, K: int) -> int:
        if K == 2 or K == 5:
            return -1
        remainder = 0
        for i in range(1, K + 1):
            remainder = (remainder * 10 + 1) % K
            if not remainder:
                return i
        return -1
class Solution:
    # https://leetcode.com/problems/smallest-integer-divisible-by-k/discuss/801679/Simple-elegant-code-with-explanation-and-example
    def smallestRepunitDivByK(self, K: int) -> int:
        if K == 2 or K == 5:
            return -1
        remainder = 0
        for i in range(1, K + 1):
            remainder = (remainder * 10 + 1) % K
            if not remainder:
                return i
        return -1