結果
| 問題 | 
                            No.1312 Snake Eyes
                             | 
                    
| コンテスト | |
| ユーザー | 
                             FromBooska
                         | 
                    
| 提出日時 | 2023-03-03 18:07:48 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 908 bytes | 
| コンパイル時間 | 215 ms | 
| コンパイル使用メモリ | 81,992 KB | 
| 実行使用メモリ | 77,604 KB | 
| 最終ジャッジ日時 | 2024-09-17 22:11:12 | 
| 合計ジャッジ時間 | 6,989 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge6 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 83 WA * 2 | 
ソースコード
# さっきのACは嘘解法
# Nの約数-1だけでなく、(Nの約数-1)の約数もpの候補
def base_k(num, k):
    result = set()
    while num > 0:
        amari = num%k
        result.add(amari)
        num -= amari
        num //= k
    return len(result)
def divisors(n):
    lower_divisors , upper_divisors = [], []
    i = 1
    while i*i <= n:
        if n % i == 0:
            lower_divisors.append(i)
            if i != n // i:
                upper_divisors.append(n//i)
        i += 1
    return lower_divisors + upper_divisors[::-1]
N = int(input())
divs = divisors(N)
divs_divs = set()
for d in divs:
    for d2 in divisors(d-1):
        if d2 > 1:
            divs_divs.add(d2)
divs_divs_sorted = sorted(list(divs_divs))
#print(divs_divs_sorted)
for d3 in divs_divs_sorted:
    if d3 == 1:
        continue
    calc = base_k(N, d3)
    if calc == 1:
        print(d3)
        exit()
            
            
            
        
            
FromBooska