結果
| 問題 | No.843 Triple Primes | 
| コンテスト | |
| ユーザー |  るこーそー | 
| 提出日時 | 2024-09-09 12:55:10 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 100 ms / 2,000 ms | 
| コード長 | 611 bytes | 
| コンパイル時間 | 341 ms | 
| コンパイル使用メモリ | 82,232 KB | 
| 実行使用メモリ | 69,852 KB | 
| 最終ジャッジ日時 | 2024-09-09 12:55:15 | 
| 合計ジャッジ時間 | 4,915 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 42 | 
ソースコード
import random
def MillerRabin(n,k=20):
  if n==2:return True
  if n<2 or n%2==0:return False
  s,d=0,n-1
  while d&1==0:
    s+=1
    d>>=1
  for _ in range(k):
    a=random.randint(1,n-1)
    x=pow(a,d,n)
    if x!=1 and x!=n-1:
      for __ in range(s):
        x=pow(x,2,n)
        if x==n-1:break 
      else:return False
  return True
n=int(input())
primes=[True]*(n+1)
primes[0]=primes[1]=False
for p in range(2,n+1):
  if primes[p]:
    for q in range(2*p,n+1,p):
      primes[q]=False
ans=1
for r in range(3,n):
  if r*r-2>n:break
  if primes[r] and primes[r*r-2]:
    ans+=2
print(ans if n>1 else 0)
            
            
            
        