---
# System prepended metadata

title: Leetcode 1015. Smallest Integer Divisible by K
tags: [Leetcode(C++)]

---

# Leetcode 1015. Smallest Integer Divisible by K
###### tags: `Leetcode(C++)`

題目 : https://leetcode.com/problems/smallest-integer-divisible-by-k/ 。

想法 : 題目說n有可能會超過2^64-1，所以用餘數去找就好，類似長除法，如果餘數出現重複就代表循環了。

時間複雜度 : O(n)。

程式碼 :

```
class Solution {
public:
    int smallestRepunitDivByK(int k) {
        if(k == 1) return 1;
        if(k%2 == 0 || k%5 == 0) return -1;
        
        int ans=1,n=1,same[100010]={0};
        while(n != 0){
            n=(n*10+1)%k; ans++;
            if(same[n] == 1) return -1;
            else same[n]=1;
            
            cout << n << "\n";
        }
        return ans;
    }
};
```