題目鏈接:http://codeforces.com/contest/66/problem/D
題目大意:給定一個,找到一個數組,使得和。
思路:先預處理出前100項的素數,然後令
,,
就了,不過這樣會爆精度,所以我用寫了一下,其他神仙網友的題解感覺更妙,主要是想記錄一下實現素數篩。
AC代碼:
#python實現素數篩
def primes(n):
P = []
f = []
for i in range(n+1):
if i > 2 and i%2 == 0:
f.append(1)
else:
f.append(0)
i = 3
while i*i <= n:
if f[i] == 0:
j = i*i
while j <= n:
f[j] = 1
j += i+i
i += 2
P.append(2)
for i in range(3,n,2):
if f[i] == 0:
P.append(i)
return P
if __name__ == '__main__':
n = 100000
P = primes(n)
nn=int(input())
if nn==2:
print(-1)
else:
ans=1
for i in range(0,nn):
ans=ans*P[i]
for i in range(0,nn):
print(ans//P[i])