問題概要
問題ページ
[st-card-ex url="https://atcoder.jp/contests/abc174/tasks/abc174_c" target="_blank" rel="nofollow" label="" name="" bgcolor="" color="" readmore="問題ページへ移動する"]
問題文
高橋君は \(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()