#44806: 為何NA36%


hansjiang1017@gmail.com (可以出題了!!!!!!!!!!!!!!!)


import sys
from itertools import accumulate
import operator
N = 5001
isPrime = [1]*(N+1)
isPrime[0] = isPrime[1] = 0
        
for i in range(2,int(N**0.5)+1):
    if isPrime[i]:
        for j in range(i**2, N+1, i):
            isPrime[j] = 0
prime_m = list(accumulate([i for i in range(N+1) if isPrime[i]], operator.mul))

for s in sys.stdin:
    print(prime_m[int(s)-1])

#44808: Re: 為何NA36%


1257891 (1257891)


import sys
from itertools import accumulate
import operator
N = 5001
isPrime = [1]*(N+1)
isPrime[0] = isPrime[1] = 0
        
for i in range(2,int(N**0.5)+1):
    if isPrime[i]:
        for j in range(i**2, N+1, i):
            isPrime[j] = 0
prime_m = list(accumulate([i for i in range(N+1) if isPrime[i]], operator.mul))

for s in sys.stdin:
    print(prime_m[int(s)-1])

你的prime_m長度才669

#44811: Re: 為何NA36%


hansjiang1017@gmail.com (可以出題了!!!!!!!!!!!!!!!)


import sys
from itertools import accumulate
import operator
N = 5001
isPrime = [1]*(N+1)
isPrime[0] = isPrime[1] = 0
        
for i in range(2,int(N**0.5)+1):
    if isPrime[i]:
        for j in range(i**2, N+1, i):
            isPrime[j] = 0
prime_m = list(accumulate([i for i in range(N+1) if isPrime[i]], operator.mul))

for s in sys.stdin:
    print(prime_m[int(s)-1])

你的prime_m長度才669


謝謝,題目看成5000以內的質數而非前5000個質數