Edit

【pythonでABC174を解説】C - Repsept

問題概要

問題ページ

C - Repsept
C - Repsept

問題ページへ移動する

問題文

高橋君は \(K\) の倍数と \(7\) が好きです。

\(7,77,777,\ldots\) という数列の中に初めて \(K\) の倍数が登場するのは何項目ですか?

存在しない場合は代わりに -1 を出力してください。

制約

  • \(1 \leq K \leq 10^6\)
  • \(K\) は整数である。

問題の考察

ACコード

import sys
import collections


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    k = int(input().rstrip('\n'))
    t = 7
    dt = collections.defaultdict(int)
    for i in range(10 ** 20):
        d, m = divmod(t, k)
        if m == 0:
            print(i + 1)
            exit()
        else:
            if m not in dt:
                t = m * 10 + 7
                dt[m]
            else:
                print(-1)
                exit()


if __name__ == '__main__':
    solve()

-Edit
-