結果
| 問題 | 
                            No.3332 Consecutive Power Sum (Small)
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2025-11-02 22:30:46 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 172 ms / 2,025 ms | 
| コード長 | 1,016 bytes | 
| コンパイル時間 | 291 ms | 
| コンパイル使用メモリ | 82,640 KB | 
| 実行使用メモリ | 153,476 KB | 
| 最終ジャッジ日時 | 2025-11-02 22:30:56 | 
| 合計ジャッジ時間 | 9,734 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 52 | 
ソースコード
n = int(input())
m = 10 ** 12
me = 40
def divisors(n):
    lo , hi = [], []
    i = 1
    while i*i <= n:
        if n % i == 0:
            lo.append(i)
            if i != n // i:
                hi.append(n//i)
        i += 1
    return lo + hi[::-1]
ans = []
for e in range(1, me + 1):
    if e == 1:
        div = divisors(n * 2)
        ld = (len(div) + 1) // 2
        for i in range(ld)[::-1]:
            a = div[i]
            b = div[~i]
            if (b - a) % 2:
                l = (b - a - 1) // 2
                r = (b + a - 1) // 2
                ans.append((e, l + 1, r))
    else:
        a = [0]
        la = 1
        while la ** e <= m:
            a.append(a[-1] + la ** e)
            la += 1
        a.append(a[-1] + la ** e)
        
        l, r = 0, 0
        while l < la:
            while r < la and a[r] - a[l] < n:
                r += 1
            if a[r] - a[l] == n:
                ans.append((e, l + 1, r))
            l += 1
print(len(ans))
for ai in ans:
    print(*ai)