結果

問題 No.732 3PrimeCounting
ユーザー tktk_snsntktk_snsn
提出日時 2020-12-17 23:26:39
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
TLE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,070 bytes
コンパイル時間 89 ms
コンパイル使用メモリ 12,672 KB
実行使用メモリ 144,188 KB
最終ジャッジ日時 2024-09-21 08:41:21
合計ジャッジ時間 8,931 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2,550 ms
108,940 KB
testcase_01 AC 2,562 ms
107,940 KB
testcase_02 AC 2,544 ms
108,744 KB
testcase_03 AC 2,578 ms
108,744 KB
testcase_04 AC 2,571 ms
107,928 KB
testcase_05 AC 2,564 ms
108,708 KB
testcase_06 AC 2,541 ms
108,984 KB
testcase_07 AC 2,571 ms
107,672 KB
testcase_08 AC 2,564 ms
108,996 KB
testcase_09 AC 2,553 ms
108,604 KB
testcase_10 AC 2,593 ms
108,732 KB
testcase_11 AC 2,602 ms
108,716 KB
testcase_12 AC 2,573 ms
108,488 KB
testcase_13 AC 2,538 ms
109,004 KB
testcase_14 AC 2,553 ms
107,976 KB
testcase_15 AC 2,570 ms
108,716 KB
testcase_16 AC 2,559 ms
108,712 KB
testcase_17 AC 2,585 ms
108,680 KB
testcase_18 AC 2,563 ms
107,948 KB
testcase_19 AC 2,586 ms
108,460 KB
testcase_20 AC 2,568 ms
108,720 KB
testcase_21 AC 2,552 ms
108,568 KB
testcase_22 AC 2,579 ms
108,188 KB
testcase_23 AC 2,573 ms
108,680 KB
testcase_24 AC 2,553 ms
108,436 KB
testcase_25 AC 2,550 ms
109,004 KB
testcase_26 AC 2,566 ms
108,460 KB
testcase_27 AC 2,579 ms
108,604 KB
testcase_28 AC 2,852 ms
108,572 KB
testcase_29 TLE -
testcase_30 AC 2,654 ms
108,312 KB
testcase_31 AC 2,596 ms
108,200 KB
testcase_32 AC 2,542 ms
108,184 KB
testcase_33 AC 2,569 ms
108,556 KB
testcase_34 AC 2,552 ms
108,360 KB
testcase_35 AC 2,665 ms
108,760 KB
testcase_36 AC 2,563 ms
108,448 KB
testcase_37 AC 2,534 ms
108,312 KB
testcase_38 AC 2,595 ms
108,328 KB
testcase_39 AC 2,583 ms
107,932 KB
testcase_40 AC 2,545 ms
108,628 KB
testcase_41 AC 2,567 ms
108,484 KB
testcase_42 AC 2,582 ms
108,204 KB
testcase_43 AC 2,572 ms
108,188 KB
testcase_44 AC 2,543 ms
108,620 KB
testcase_45 AC 2,543 ms
107,956 KB
testcase_46 AC 2,561 ms
108,200 KB
testcase_47 AC 2,582 ms
107,844 KB
testcase_48 AC 2,588 ms
108,616 KB
testcase_49 AC 2,610 ms
108,956 KB
testcase_50 AC 2,616 ms
108,744 KB
testcase_51 AC 2,588 ms
108,200 KB
testcase_52 AC 2,578 ms
108,732 KB
testcase_53 AC 2,585 ms
108,648 KB
testcase_54 AC 2,734 ms
121,532 KB
testcase_55 AC 2,623 ms
121,696 KB
testcase_56 AC 2,624 ms
122,064 KB
testcase_57 AC 2,586 ms
108,760 KB
testcase_58 AC 2,577 ms
108,996 KB
testcase_59 AC 2,578 ms
108,744 KB
testcase_60 AC 2,614 ms
109,300 KB
testcase_61 AC 2,599 ms
108,968 KB
testcase_62 AC 2,640 ms
120,944 KB
testcase_63 AC 2,585 ms
110,080 KB
testcase_64 AC 2,581 ms
109,000 KB
testcase_65 AC 2,559 ms
109,140 KB
testcase_66 AC 2,566 ms
107,892 KB
testcase_67 AC 2,572 ms
109,000 KB
testcase_68 AC 2,630 ms
120,948 KB
testcase_69 AC 2,617 ms
121,032 KB
testcase_70 AC 2,627 ms
122,096 KB
testcase_71 AC 2,609 ms
122,044 KB
testcase_72 AC 2,605 ms
110,184 KB
testcase_73 AC 2,634 ms
121,120 KB
testcase_74 AC 2,707 ms
120,204 KB
testcase_75 TLE -
testcase_76 AC 2,644 ms
120,816 KB
testcase_77 AC 2,564 ms
108,692 KB
testcase_78 AC 2,626 ms
120,728 KB
testcase_79 AC 2,636 ms
120,928 KB
testcase_80 AC 2,601 ms
121,088 KB
testcase_81 AC 2,595 ms
122,064 KB
testcase_82 AC 2,541 ms
108,728 KB
testcase_83 AC 2,576 ms
108,740 KB
testcase_84 AC 2,583 ms
109,256 KB
testcase_85 AC 2,628 ms
121,740 KB
testcase_86 AC 2,626 ms
120,900 KB
testcase_87 AC 2,731 ms
144,188 KB
testcase_88 AC 2,697 ms
144,140 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from itertools import chain
from scipy.signal import fftconvolve
import numpy as np


def convolve(A, B):
    sz = len(A) + len(B)
    fft_len = 1 << (sz-1).bit_length()
    F1 = np.fft.rfft(A, fft_len)
    F2 = np.fft.rfft(B, fft_len)
    G = F1 * F2
    res = np.fft.irfft(G, fft_len)
    return np.rint(res + 0.001).astype(np.int64)[:sz - 1]


def prime_set(N):
    """
    Nまでの素数のsetを返す
    """
    if N < 4:
        return ({}, {}, {2}, {2, 3})[N]
    Nsq = int(N ** 0.5 + 0.5) + 1
    primes = {2, 3} | set(chain(range(5, N + 1, 6), range(7, N + 1, 6)))
    for i in range(5, Nsq, 2):
        if i in primes:
            primes -= set(range(i * i, N + 1, i * 2))
    return primes


N = int(input())
U = 100000
P = np.array(list(prime_set(3 * U + 1)), dtype=np.int32)

primes = P[P <= N]
F = np.bincount(1 * primes).astype(np.int64)
G = np.bincount(2 * primes).astype(np.int64)
H = np.bincount(3 * primes).astype(np.int64)

FFF = convolve(F, convolve(F, F))
FG = convolve(F, G)

cnt = (FFF - 3 * FG + 2 * H) // 6
print(cnt[P[P < len(cnt)]].sum())
0