結果
| 問題 | No.732 3PrimeCounting |
| コンテスト | |
| ユーザー |
n_bitand_n_per_3
|
| 提出日時 | 2025-08-11 17:40:07 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 929 bytes |
| 記録 | |
| コンパイル時間 | 333 ms |
| コンパイル使用メモリ | 82,652 KB |
| 実行使用メモリ | 99,188 KB |
| 最終ジャッジ日時 | 2025-08-11 17:40:57 |
| 合計ジャッジ時間 | 49,326 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 85 TLE * 3 -- * 1 |
ソースコード
from collections import defaultdict
N = int(input())
array = [True]*(3*N+1)
array[0] = False
array[1] = False
prime_1 = []
prime_2 = []
i = 2
while i <= 3*N:
if array[i]:
for j in range(2*i, 3*N+1, i):
array[j] = False
if 3 < i <= N:
if i % 3 == 1:
prime_1.append(i)
if i % 3 == 2:
prime_2.append(i)
i += 1
ans = 0
prime_1_1 = defaultdict(int)
for i in range(len(prime_1)):
for j in range(i+1,len(prime_1)):
prime_1_1[prime_1[i]+prime_1[j]] += 1
prime_2_2 = defaultdict(int)
for i in range(len(prime_2)):
for j in range(i+1,len(prime_2)):
prime_2_2[prime_2[i]+prime_2[j]] += 1
for s in prime_1_1:
c = 0
if array[3+s]:
c += 1
for j in prime_2:
if array[j+s]:
c += 1
ans += c*prime_1_1[s]
for s,v in prime_2_2.items():
c = 0
if array[3+s]:
c += 1
for j in prime_1:
if array[j+s]:
c += 1
ans += c*prime_2_2[s]
print(ans)
n_bitand_n_per_3