結果
問題 | No.1339 循環小数 |
ユーザー |
![]() |
提出日時 | 2021-01-16 01:55:30 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 140 ms / 2,000 ms |
コード長 | 1,261 bytes |
コンパイル時間 | 702 ms |
コンパイル使用メモリ | 82,092 KB |
実行使用メモリ | 64,120 KB |
最終ジャッジ日時 | 2024-11-26 20:26:47 |
合計ジャッジ時間 | 4,123 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 36 |
ソースコード
import syssys.setrecursionlimit(10**7)def I(): return int(sys.stdin.readline().rstrip())def MI(): return map(int,sys.stdin.readline().rstrip().split())def LI(): return list(map(int,sys.stdin.readline().rstrip().split()))def LI2(): return list(map(int,sys.stdin.readline().rstrip()))def S(): return sys.stdin.readline().rstrip()def LS(): return list(sys.stdin.readline().rstrip().split())def LS2(): return list(sys.stdin.readline().rstrip())def phi(n):ans = nfor i in range(2,int(n**.5)+1):if n % i == 0:ans = (ans*(i-1))//iwhile n % i == 0:n //= iif n == 1: # 時間短縮breakif n != 1:ans = (ans*(n-1))//nreturn ansdef divisor(n): # nの約数全列挙res = []for i in range(1,int(n**.5)+1):if n % i == 0:res.append(i)if i != n//i:res.append(n//i)return resT = I()for _ in range(T):N = I()while N % 2 == 0:N //= 2while N % 5 == 0:N //= 5if N == 1:print(1)continuer = phi(N)div = divisor(r)div.sort()for d in div:if pow(10,d,N) == 1:print(d)break