結果
| 問題 | No.3264 岩井数 | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2025-09-06 14:56:15 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                RE
                                 
                             | 
| 実行時間 | - | 
| コード長 | 1,658 bytes | 
| コンパイル時間 | 216 ms | 
| コンパイル使用メモリ | 82,324 KB | 
| 実行使用メモリ | 67,844 KB | 
| 最終ジャッジ日時 | 2025-09-06 14:56:23 | 
| 合計ジャッジ時間 | 4,483 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 9 RE * 21 | 
ソースコード
import math
import sys
def prime_factors(n):
    pf = {}
    x = n
    d = 2
    while d * d <= x:
        while x % d == 0:
            pf[d] = pf.get(d, 0) + 1
            x //= d
        d += 1 if d == 2 else 2  
    if x > 1:
        pf[x] = pf.get(x, 0) + 1
    return pf
def totient(n, pf):
    res = n
    for p in pf:
        res = res // p * (p - 1)
    return res
def divisors_from_pf(pf):
    # pf: {prime:exp}
    divs = [1]
    for p, e in pf.items():
        cur = []
        powp = 1
        for _ in range(e+1):
            for d in divs:
                cur.append(d * powp)
            powp *= p
        divs = cur
    return divs
N = int(sys.stdin.readline().strip())
# factorize N
pfN = prime_factors(N)
phi = totient(N, pfN)
# factorize phi to enumerate its divisors (we need sorted divisors)
pf_phi = prime_factors(phi)
divs = divisors_from_pf(pf_phi)
divs.sort()
# find multiplicative order k of 10 mod N (smallest d | phi with 10^d = 1 mod N)
k = None
for d in divs:
    if pow(10, d, N) == 1:
        k = d
        break
if k is None:
    # 理論上あり得ないはず(gcd(10,N)=1 なら位数は存在する)
    raise RuntimeError("order not found")
# choose t so that L = t*k >= 9, and L <= 2000 (we can choose minimal t)
t = (9 + k - 1) // k
L = t * k
# safety check: problem guarantees a solution exists within bounds,
# but let's assert L <= 2000
if L > 2000:
    # 理論上このケースは問題文の条件下で起きないはずですが念のため
    raise RuntimeError("cannot make length within [9,2000]")
# 出力: L 個の '9'(これは 10^L - 1 で N の倍数かつ Iwai 数)
print('9' * L)
            
            
            
        