結果

問題 No.864 四方演算
ユーザー tnodino
提出日時 2022-05-28 15:26:05
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 137 ms / 1,000 ms
コード長 565 bytes
コンパイル時間 486 ms
コンパイル使用メモリ 12,544 KB
実行使用メモリ 11,008 KB
最終ジャッジ日時 2024-09-20 22:22:11
合計ジャッジ時間 4,128 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import defaultdict
from math import sqrt
def divisor(N):
    ret = []
    for i in range(1,int(sqrt(N))+1):
        if N % i == 0:
            ret.append(i)
            if N // i != i:
                ret.append(N//i)
    ret.sort()
    return ret

N = int(input())
K = int(input())
div = divisor(K)
cnt = defaultdict(int)
for d in div:
    if d < 2 or N * 2 < d:
        continue
    if 2 <= d <= N + 1:
        cnt[d] = d - 1
    else:
        cnt[d] = N * 2 + 1 - d
ans = 0
for ac in div:
    bd = K // ac
    ans += cnt[ac] * cnt[bd]
print(ans)
0