結果

問題 No.36 素数が嫌い!
ユーザー yaoshimax
提出日時 2015-02-21 16:24:47
言語 Python2
(2.7.18)
結果
WA  
実行時間 -
コード長 730 bytes
コンパイル時間 168 ms
コンパイル使用メモリ 7,068 KB
実行使用メモリ 257,612 KB
最終ジャッジ日時 2024-06-23 21:48:20
合計ジャッジ時間 82,847 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 24 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

# I hate Math
N=int(raw_input())
upperbound=10000001
isOKsize=(upperbound-3)/2+1
isOK=[True for i in range(isOKsize)]

for i in range(isOKsize):
    if (i+i+3)*i+i > isOKsize:
        break
    if isOK[i]:
        #i+i+3 is prime
        p=i+i+3
        #delete j s.t. j+j+3 = (2i+3)^2 = 4i^2+12i+9 => j=2i^2+6i+3=p*(i+1)+i
        #next j is j+j+3 = (2i+3)(2i+5). that is, step of j is 2i+3=p
        for k in range( p*i+p+i, isOKsize, p):
            isOK[k]=False
primes = [2] + [i+i+3 for i in range(isOKsize) if isOK[i]]

cnt = 0
for p in primes:
    #print p
    if p*p > N:
        break
    while cnt<2 and N%p==0:
        cnt+=1
        N/=p
    if cnt >= 2:
        break
if cnt>=2:
    print "YES"
else:
    print"NO"

0