Problem:
 Score: 400 points    Problem Statement  Print a sequence a_1, a_2, ..., a_N whose length is N that satisfies the following conditions:   a_i  (1 \leq i \leq N) is a prime number at most 55  555 .  The values of a_1, a_2, ..., a_N are all different.  In every choice of five different integers from a_1, a_2, ..., a_N , the sum of those integers is a composite number.   If there are multiple such sequences, printing any of them is accepted.      Notes  An integer N not less than 2 is called a prime number if it cannot be divided evenly by any integers except 1 and N , and called a composite number otherwise.      Constraints   N is an integer between 5 and 55 (inclusive).         Input  Input is given from Standard Input in the following format:  N       Output  Print N numbers a_1, a_2, a_3, ..., a_N in a line, with spaces in between.        Sample Input 1 5      Sample Output 1 3 5 7 11 31  Let us see if this output actually satisfies the conditions. First, 3 , 5 , 7 , 11 and 31 are all different, and all of them are prime numbers. The only way to choose five among them is to choose all of them, whose sum is a_1+a_2+a_3+a_4+a_5=57 , which is a composite number. There are also other possible outputs, such as 2 3 5 7 13 , 11 13 17 19 31 and 7 11 5 31 3 .       Sample Input 2 6      Sample Output 2 2 3 5 7 11 13   2 , 3 , 5 , 7 , 11 , 13 are all different prime numbers.  2+3+5+7+11=28 is a composite number.  2+3+5+7+13=30 is a composite number.  2+3+5+11+13=34 is a composite number.  2+3+7+11+13=36 is a composite number.  2+5+7+11+13=38 is a composite number.  3+5+7+11+13=39 is a composite number.   Thus, the sequence 2 3 5 7 11 13 satisfies the conditions.       Sample Input 3 8      Sample Output 3 2 5 7 13 19 37 67 79

Solution (Python):
N=int(input())
dp=[True]*55556
dp[0]=False
dp[1]=False
for i in range(2,55556):
    if dp[i]:
        h=i+i
        while h<55556:
            dp[h]=False
            h+=i
ans=[]
for i in range(55556):
    if dp[i] and i%5==1: ans.append(i)
for a in ans[:N]:
    print(a,end=' ')

Solution (Python):
import math

N = int(input())
primes = []


def isprime(n):
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True


for p in range(3, 55556, 2):
    if p % 5 == 1 and isprime(p):
        primes.append(str(p))
    if len(primes) == N:
        break
print(" ".join(primes))

Solution (Python):
import itertools

def judge_prime(n):
    for p in range(2,n):
        if n % p == 0:
            return False
        
    return True


N = int(input())

ans_list = []
number = 2

while(number <= 55555):
    if len(ans_list) < N:
        if judge_prime(number):
            if number % 5 ==1:
                ans_list.append(number)
        number += 1
    else:
        break

print(" ".join(map(str,ans_list)))

Solution (Python):
N = int(input())

D = [i for i in range(3, 55556, 2)]
T = [0 for i in range(len(D))]

L5 = []
for i in range(len(D)):
  if T[i] == 0:
    if D[i] % 5 == 1:
      L5.append(D[i])
    for j in range(i + D[i], len(D), D[i]):
      D[j] = -1

Ans = "2"
for i in range(N - 1):
  Ans += " " + str(L5[i])
  
print(Ans)

Solution (Python):
import sys
def prime_boolean_table(n):
    primes = [True] * (n + 1)
    primes[0] = False
    primes[1] = False
    for i in range(2, n + 1):
        if primes[i]:
            for j in range(i + i, n + 1, i):
                primes[j] = False
    return primes

p = [i for i,x in enumerate(prime_boolean_table(55555)) if x and i%5==1]
n = int(input())
s = ""
for i in range(n):
    s+="{0}".format(p[i])
    if i==n-1: break
    s+=" "
print(s)

Solution (Python):

def era(n):
    table = [0] * (n + 1)
    prime_list = []
    
    for i in range(2, n + 1):
        if table[i] == 0:
            prime_list.append(i)
            for j in range(2*i, n + 1, i):
                table[j] = 1
    
    return prime_list


s = (era(55555))
ans = []
N = int(input())
for i in s:
    if len(ans) == N:
        break
    if i % 5 == 1:
        ans.append(str(i))


print(' '.join(ans))

Solution (Python):


import numpy as np

def is_prime(d):
    
    assert d >= 1
    if d == 1:
        flag = False
    else:
        flag = True
        for t in range(2, d):
            if d % t == 0:
                flag = False
                break
            if t ** 2 > d:
                break
    return flag

def miller_rabin(n, k=20):
    
    
    assert n >= 1
    if n == 2:
        return True
    elif n == 1 or n % 2 == 0:
        return False
    
    d = n - 1
    s = 0
    while d % 2 == 0:
        d //= 2
        s += 1
    rng = np.random.RandomState(seed=0)
    for i in range(k):
        a = rng.randint(1, n - 1)
        if pow(a, d, n) != 1:
            for r in range(s):
                if pow(a, d * 2 ** r, n) == n - 1:
                    break
            else:
                return False
    return True

def pow(n, p, mod):
    if p == 0:
        return 1
    elif p % 2 == 0:
        x = pow(n, p // 2, mod)
        return (x * x) % mod
    else:
        x = pow(n, p - 1, mod)
        return (x * n) % mod

def get_list():
    res = [i * 5 + 6 for i in range(12000)]
    res = [x for x in res if miller_rabin(x)]
    return res[:55]

def main():
    n = int(input())
    res = get_list()
    print(*res[:n])

main()

Solution (Python):


def is_prime(d):
    assert d >= 1
    if d == 1:
        flag = False
    else:
        flag = True
        for t in range(2, d):
            if d % t == 0:
                flag = False
                break
            if t ** 2 > d:
                break
    return flag

def get_list():
    res = [i * 5 + 6 for i in range(12000) if is_prime(i * 5 + 6)]
    res = [x for x in res if is_prime(x)]
    return res[:55]

def main():
    n = int(input())
    res = get_list()
    print(*res[:n])

main()

Solution (Python):
N = int(input())

A = [True]*100000
A[0],A[1]=False,False
for i in range(2,100000):
    if A[i]:
        j = 2
        while i*j<100000:
            A[i*j] = False
            j += 1
P = []
for i in range(100000):
    if A[i] and i%5==1:
        P.append(i)

print(" ".join(map(str,P[:N])))

Solution (Python):



II = lambda: int(input())
MI = lambda: map(int, input().split())


def gen_primes(N):
    primes = [True] * (N + 1)
    primes[0] = primes[1] = False
    for i in range(N + 1):
        if not primes[i]: continue
        for j in range(2, N):
            if i * j > N: break
            primes[i * j] = False
    return [i for i in range(N + 1) if primes[i]]


def main():
    N = II()
    ans = [p for p in gen_primes(55555) if p % 5 == 1]
    print(" ".join(map(str, ans[:N])))


if __name__ == "__main__":
    main()

Solution (Python):
N = int(input()) 
prime = [] 
def isprime(n):
    flag = 0
    for i in range(2,int(n**(1/2))+1):
        if n % i == 0:
            flag = 1
            break
    if n == 2:
        flag = 0
    if flag == 0:
        return True
    else:
        return False 
for i in range(1,55556):
    if isprime(i) and i%5==1:
        prime.append(i) 
ans = str(prime[1] )
for i in range(2,N+1):
    ans += " "+str(prime[i] )
print(ans)

Solution (Python):
pn=[2];A=2000
for L in range(3,A):
    chk=True
    for L2 in pn:
        if L%L2 == 0:chk=False
    if chk==True:pn.append(L)

ans = []
n = int(input())
for i in range(len(pn)):
  if str(pn[i])[-1]=="1":
    ans.append(pn[i])
  if len(ans)==n:
    break
print(str(ans).replace("[","").replace("]","").replace(",",""))

Solution (Python):
from math import sqrt
n = int(input())

def check(x):
    for i in range(2, int(sqrt(x))+2):
        if x % i == 0:
            return False
    return True

a = []
i = 0
while len(a) < n:
    i += 1
    if check(5*i+1):
        a.append(5*i+1)

print(*a, sep=" ")

Solution (Python):
def f(n):
    pp=[11, 31, 41, 61, 71, 101, 131, 151, 181, 191, 211, 241, 251, 271, 281, 311, 331, 401, 421, 431, 461, 491, 521, 541, 571, 601, 631, 641, 661, 691, 701, 751, 761, 811, 821, 881, 911, 941, 971, 991, 1021, 1031, 1051, 1061, 1091, 1151, 1171, 1181, 1201, 1231, 1291, 1301, 1321, 1361, 1381]
    pp=[str(pp[i]) for i in range(n)]
    return ' '.join(pp)
print(f(int(input())))

Solution (Python):


import sys
import math
from collections import deque

INF = float('inf')
MOD = 10 ** 9 + 7

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def II(): return int(sys.stdin.readline())
def SI(): return input()


def is_prime(x):
    if x < 2: return False
    if x == 2 or x == 3 or x == 5: return True
    if x % 2 == 0 or x % 3 == 0 or x % 5 == 0: return False

    prime = 7
    step = 4
    while prime <= math.sqrt(x):
        if x % prime == 0: return False
        prime += step
        step = 6 - step
    return True


n = II()
ans = []
for i in range(2, 55555):
    if i % 5 != 1:
        continue
    if not is_prime(i):
        continue
    ans.append(i)
    if len(ans) == n:
        break

print(*ans)

Solution (Python):

import time
import math

def main():

    N = int(input())

    max_sum = 55555 * 5
    primes = [True] * (max_sum)
    primes[0] = False
    primes[1] = False
    max_i = int(math.sqrt(max_sum))
    for i in range(2, max_i):
        if primes[i]:
            for j in range(i * i, max_sum, i):
                primes[j] = False

    a = []
    for i in range(5):
        a.append([])

    a[2].append(2)
    for i in range(3, 55555, 2):
        if primes[i]:
            a[i % 5].append(i)

    for i in range(1, 5):
        if N <= len(a[i]):
            print(' '.join(map(str, a[i][:N])))
            break


if __name__ == '__main__':
    main()

Solution (Python):
def is_prime(q):
    routeq = int(q ** 0.5) + 1
    for i in range(2, routeq):
        if q % i == 0:
            return False

    return True

N = int(input())

counter = 1
num = 11
print(str(num), end = '')

while counter < N:
    num += 10
    if is_prime(num):
        print(' ' + str(num), end = '')
        counter += 1

print()

Solution (Python):
n=int(input())
arr=[2]
new=[]
for num in range(3,55556):
    isprime=True
    for i in arr:
        if num%i==0:
            isprime=False
            break
    if isprime:
        arr+=[num]
        if num%10==3:
            new+=[num]
    if len(new)==55:
        break

print(' '.join(list(map(str,new[:n]))))

Solution (Python):
import math
import copy

n=int(input())
a=11
l=[]
while a<=55555:
    flag=True
    b=copy.deepcopy(a)
    a+=10
    for i in range(2,math.floor(math.sqrt(a))+1):
        if b%i==0:
            flag=False
    if flag:
        l.append(b)
    if len(l)==n:
        break
for i in range(n):
    print(l[i],end=' ')

Solution (Python):
N = int(input())

primes = [2]
primes_mod5 = [[] for _ in range(5)]
for cand in range(3, 1400, 2):
    root = int(cand**0.5)
    for p in primes:
        if p > root:
            primes += [cand]
            primes_mod5[cand % 5] += [cand]
            if len(primes_mod5[cand % 5]) == N:
                print(' '.join(map(str, primes_mod5[cand % 5])))
                exit()
            break
        elif cand % p == 0:
            break

Solution (Python):
from math import sqrt
def is_prime(n):
	u = int(sqrt(n)+1)
	for i in range(2,u):
		if n%i == 0:
			return 0
	return 1

num = int(input())
a = 11
b = 0
while b<num:
	if is_prime(a):
		print(a, end = ' ')
		b+=1
	a += 10

Solution (Python):
N = int(input())



def mark(s, x):
    for i in range(x + x, len(s), x):
        s[i] = False


def eratosthenes(n):
    s = [True] * n
    for x in range(2, int(n ** 0.5) + 1):
        if s[x]: mark(s, x)
    return [i for i in range(0, n) if s[i] and i > 1]


Primes = eratosthenes(55555)
Primes = [p for p in Primes if p % 5 == 1]

print(' '.join(map(str, Primes[:N])))

Solution (Python):


"""
参考：https://img.atcoder.jp/abc096/editorial.pdf
・こういうの、自分で思いつくようになりたい。
"""

def eratosthenes_sieve(n):
    table = [0] * (n + 1)
    prime_list = []
    
    for i in range(2, n + 1):
        if table[i] == 0:

            
            if i % 5 == 1:
	            prime_list.append(i)
            
            for j in range(i + i, n + 1, i):
                table[j] = 1
    
    return prime_list

N = int(input())
print(*(eratosthenes_sieve(10000)[:N]))

Solution (Python):
n = int(input())


def is_prime(num):
    i = 2
    while i ** 2 <= num:
        if num % i == 0:
            return False
        i += 1
    return True


candi = []
for i in range(2, 55556):
    if is_prime(i) and i % 5 == 1:
        candi.append(i)

print(*candi[:n])

Solution (Python):
N = int(input())

import math

def primes(x):
    if x < 2: return []
    
    primes = [i for i in range(x)]
    primes[1] = 0
    
    for prime in primes:
        if prime > math.sqrt(x): break
        if prime == 0: continue
        for non_prime in range(2*prime,x,prime): primes[non_prime] = 0
            
    return [prime for prime in primes if prime!=0 and prime%5 == 2]

def is_prime(x):
    if x < 2: return False
    if x == 2 or x == 2 or x == 5: return True
    if x % 2 == 0 or x % 3 == 0 or x % 5 == 0: return False
    
    prime = 7
    step = 4
    while prime <= math.sqrt(x):
        if x % prime == 0: return False
        
        prime+=step
        step=6-step
    return True


if __name__ == '__main__':
    for z in range(N):
        print(primes(55555)[z],end=" ")

Solution (Python):
def gen_primes(N):
    from itertools import compress
    sieve = list(range(N))
    sieve[1] = 0
    for i in range(2, int(N**.5) + 1):
        sieve[i * 2::i] = [0] * len(sieve[i * 2::i])
    return list(compress(range(N), sieve))

N = int(input())
print(*[p for p in gen_primes(55555) if p % 5 == 1][:N])

Solution (Python):
def gen_primes(N):
    from itertools import compress
    sieve = list(range(N))
    sieve[1] = 0
    for i in range(2, int(N**.5) + 1):
        sieve[i * 2::i] = [0] * len(sieve[i * 2::i])
    return list(compress(range(N), sieve))

N = int(input())
cnt = 0
ans = []
for p in gen_primes(55555):
    if p % 5 == 1:
        ans += [p]
        cnt += 1
        if cnt == N:
            break
print(*ans)

Solution (Python):
import math
sosu=[]
def seisei(N):
    global sosu
    sosu.append(2)
    for p in range(3,N+1):
        c=0
        for i in sosu:
            if i<=math.floor(p**(0.5)):
                if p%i==0:
                    c=1
                    break
            else:
                break
        if c==0:
            sosu.append(p)
N=int(input())
seisei(55555)
a=[]
for x in sosu:
    if x%5==1:
        a.append(str(x))
print(' '.join(a[:N]))

Solution (Python):

n = int(input())
MAX = 55555
is_prime = [1 for _ in range(MAX+1)]
is_prime[0] = 0
is_prime[1] = 0

for i in range(2, MAX+1):
    if is_prime[i]==0:
        continue
    else:
        for j in range(2*i,MAX+1,i):
            is_prime[j] = 0
primes = [i for i in range(MAX+1) if is_prime[i]==1]

res = []
for i in primes:
    if len(res)==n:
        break
    if i%5==1:
        res.append(i)

print(*res)

Solution (Python):

p5_list = [11,31,41,61,71,101,131,151,181,191,211,241,251,271,281,311,331,401,421,431,461,491,521,541,571,601,631,641,661,691,701,751,761,811,821,881,911,941,971,991,1021,1031,1051,1061,1091,1151,1171,1181,1201,1231,1291,1301,1321,1361,1381]

N=int(input())

print(*p5_list[:N])

Solution (Python):
n = int(input())
import math
def primes(x):
    if x < 2: return []

    primes = [i for i in range(x)]
    primes[1] = 0  

    
    for prime in primes:
        if prime > math.sqrt(x): break
        if prime == 0: continue
        for non_prime in range(2 * prime, x, prime): primes[non_prime] = 0

    return [prime for prime in primes if prime != 0]
primeslist = primes(55556)
l_n_str = [str(n) for n in primeslist]
pl1 = []
for i in range(len(primeslist)):
    if l_n_str[i][-1] == "1":
        pl1.append(primeslist[i])

for i in range(n):
    print(pl1[i], "" , end = "")

Solution (Python):
N = int(input())
prime5 = [11,31,41,61,71,101,131,151,181,191,211,241,251,271,281,311,331,401,421,431,461,491,521,541,571,601,631,641,661,691,701,751,761,811,821,881,911,941,971,991,1021,1031,1051,1061,1091,1151,1171,1181,1201,1231,1291,1301,1321,1361,1381,1451,1471,1481,1511,1531,1571,1601,1621,1721,1741,1801,1811,1831,1861,1871,1901,1931,1951,2011,2081,2111,2131,2141,2161,2221,2251,2281,2311,2341,2351,2371,2381,2411,2441,2521,2531,2551,2591,2621,2671,2711,2731,2741,2791,2801,2851,2861,2971,3001,3011,3041,3061,3121,3181,3191,3221,3251,3271,3301,3331,3361,3371,3391,3461,3491,3511,3541,3571,3581,3631,3671,3691,3701,3761,3821,3851,3881,3911,3931,4001,4021,4051,4091,4111,4201,4211,4231,4241,4261,4271,4391,4421,4441,4451,4481,4561,4591,4621,4651,4691,4721,4751,4801,4831,4861,4871,4931,4951,5011,5021,5051,5081,5101,5171,5231,5261,5281,5351,5381,5431,5441,5471,5501,5521,5531,5581,5591,5641,5651,5701,5711,5741,5791,5801,5821,5851,5861,5881,5981,6011,6091,6101,6121,6131,6151,6211,6221,6271,6301,6311,6361,6421,6451,6481,6491,6521,6551,6571,6581,6661,6691,6701,6761,6781,6791,6841,6871,6911,6961,6971,6991,7001,7121,7151,7211,7321,7331,7351,7411,7451,7481,7541,7561,7591,7621,7681,7691,7741,7841,7901,7951,8011,8081,8101,8111,8161,8171,8191,8221,8231,8291,8311,8431,8461,8501,8521,8581,8641,8681,8731,8741,8761,8821,8831,8861,8941,8951,8971,9001,9011,9041,9091,9151,9161,9181,9221,9241,9281,9311,9341,9371,9391,9421,9431,9461,9491,9511,9521,9551,9601,9631,9661,9721,9781,9791,9811,9851,9871,9901,9931,9941,10061,10091,10111,10141,10151,10181,10211,10271,10301,10321,10331,10391,10501,10531,10601,10631,10651,10691,10711,10771,10781,10831,10861,10891,11071,11131,11161,11171,11251,11261,11311,11321,11351,11411,11471,11491,11551,11621,11681,11701,11731,11801,11821,11831,11941,11971,11981,12011,12041,12071,12101,12161,12211,12241,12251,12281,12301,12391,12401,12421,12451,12491,12511,12541,12601,12611,12641,12671,12721,12781,12791,12821,12841,12911,12941,13001,13121,13151,13171,13241,13291,13331,13381,13411,13421,13441,13451,13591,13681,13691,13711,13721,13751,13781,13831,13841,13901,13921,13931,14011,14051,14071,14081,14221,14251,14281,14321,14341,14401,14411,14431,14461,14551,14561,14591,14621,14731,14741,14771,14821,14831,14851,14891,14951,15031,15061,15091,15101,15121,15131,15161,15241,15271,15331,15361,15391,15401,15451,15461,15511,15541,15551,15581,15601,15641,15661,15671,15731,15761,15791,15881,15901,15971,15991,16001,16061,16091,16111,16141,16231,16301,16361,16381,16411,16421,16451,16481,16561,16631,16651,16661,16691,16741,16811,16831,16871,16901,16921,16931,16981,17011,17021,17041,17191,17231,17291,17321,17341,17351,17401,17431,17471,17491,17551,17581,17681,17761,17791,17851,17881,17891,17911,17921,17971,17981,18041,18061,18121,18131,18181,18191,18211,18251,18301,18311,18341,18371,18401,18451,18461,18481,18521,18541,18661,18671,18691,18701,18731,18911,19001,19031,19051,19081,19121,19141,19181,19211,19231,19301,19381,19391,19421,19441,19471,19501,19531,19541,19571,19661,19681,19751,19801,19841,19861,19891,19961,19991,20011,20021,20051,20071,20101,20161,20201,20231,20261,20341,20411,20431,20441,20521,20551,20611,20641,20681,20731,20771,20921,20981,21001,21011,21031,21061,21101,21121,21191,21211,21221,21341,21391,21401,21481,21491,21521,21601,21611,21661,21701,21751,21821,21841,21851,21871,21881,21911,21961,21991,22031,22051,22091,22111,22171,22271,22291,22381,22391,22441,22481,22501,22511,22531,22541,22571,22621,22651,22691,22721,22741,22751,22811,22861,22871,22901,22921,22961,23011,23021,23041,23071,23081,23131,23201,23251,23291,23311,23321,23371,23431,23531,23561,23581,23671,23741,23761,23801,23831,23911,23971,23981,24001,24061,24071,24091,24121,24151,24181,24251,24281,24371,24391,24421,24481,24551,24571,24611,24631,24671,24691,24781,24821,24841,24851,24971,25031,25111,25121,25171,25261,25301,25321,25391,25411,25471,25541,25561,25601,25621,25741,25771,25801,25841,25931,25951,25981,26021,26041,26111,26141,26161,26171,26251,26261,26321,26371,26431,26501,26561,26591,26641,26681,26701,26711,26731,26801,26821,26861,26881,26891,26921,26951,26981,27011,27031,27061,27091,27191,27211,27241,27271,27281,27361,27431,27481,27541,27551,27581,27611,27631,27691,27701,27751,27791,27851,27901,27941,27961,28001,28031,28051,28081,28111,28151,28181,28201,28211,28351,28411,28541,28571,28591,28621,28631,28661,28711,28751,28771,28871,28901,28921,28961,29021,29101,29131,29191,29201,29221,29231,29251,29311,29401,29411,29501,29531,29581,29611,29641,29671,29741,29761,29851,29881,29921,30011,30071,30091,30161,30181,30211,30241,30271,30341,30391,30431,30491,30631,30661,30671,30781,30841,30851,30871,30881,30911,30931,30941,30971,31051,31081,31091,31121,31151,31181,31231,31271,31321,31391,31481,31511,31531,31541,31601,31721,31741,31751,31771,31891,31981,31991,32051,32141,32191,32251,32261,32321,32341,32371,32381,32401,32411,32441,32491,32531,32561,32611,32621,32771,32801,32831,32911,32941,32971,33071,33091,33151,33161,33181,33191,33211,33301,33311,33331,33391,33461,33521,33581,33601,33641,33721,33751,33791,33811,33851,33871,33911,33931,33941,33961,34031,34061,34141,34171,34211,34231,34261,34301,34351,34361,34381,34421,34471,34501,34511,34591,34631,34651,34721,34781,34841,34871,34961,34981,35051,35081,35111,35141,35171,35201,35221,35251,35281,35291,35311,35381,35401,35461,35491,35521,35531,35591,35671,35731,35771,35801,35831,35851,35911,35951,36011,36061,36131,36151,36161,36191,36241,36251,36341,36451,36541,36551,36571,36671,36691,36721,36761,36781,36791,36821,36871,36901,36931,37021,37061,37171,37181,37201,37321,37361,37441,37501,37511,37561,37571,37591,37691,37781,37811,37831,37861,37871,37951,37991,38011,38201,38231,38261,38281,38321,38351,38371,38431,38461,38501,38561,38611,38651,38671,38711,38791,38821,38851,38861,38891,38921,38971,39041,39161,39181,39191,39241,39251,39301,39341,39371,39451,39461,39511,39521,39541,39551,39581,39631,39671,39761,39791,39821,39841,39901,39971,40031,40111,40151,40231,40241,40351,40361,40471,40531,40591,40751,40771,40801,40841,40961,41011,41051,41081,41131,41141,41161,41201,41221,41231,41281,41341,41351,41381,41411,41491,41521,41611,41621,41641,41651,41681,41761,41771,41801,41851,41911,41941,41981,42061,42071,42101,42131,42181,42221,42281,42331,42391,42451,42461,42491,42571,42611,42641,42701,42751,42821,42841,42901,42961,43051,43151,43201,43261,43271,43291,43321,43331,43391,43411,43441,43451,43481,43541,43591,43651,43661,43691,43711,43721,43781,43801,43891,43951,43961,43991,44021,44041,44071,44101,44111,44131,44171,44201,44221,44281,44351,44371,44381,44491,44501,44531,44621,44641,44651,44701,44711,44741,44771,44851,44971,45061,45121,45131,45161,45181,45191,45281,45341,45361,45481,45491,45541,45631,45641,45691,45751,45821,45841,45971,46021,46051,46061,46091,46141,46171,46181,46261,46271,46301,46351,46381,46411,46441,46451,46471,46511,46591,46601,46681,46691,46751,46771,46811,46831,46861,46901,47041,47051,47111,47161,47221,47251,47351,47381,47431,47441,47491,47501,47521,47581,47591,47681,47701,47711,47741,47791,47881,47911,47951,47981,48091,48121,48131,48221,48271,48281,48311,48341,48371,48481,48491,48541,48571,48611,48661,48731,48751,48761,48781,48821,48871,48991,49031,49081,49121,49171,49201,49211,49261,49331,49391,49411,49451,49481,49531,49681,49711,49741,49801,49811,49831,49871,49891,49921,49991,50021,50051,50101,50111,50131,50221,50231,50261,50291,50311,50321,50341,50411,50441,50461,50551,50581,50591,50651,50671,50741,50821,50891,50951,50971,51001,51031,51061,51071,51131,51151,51241,51341,51361,51421,51431,51461,51481,51511,51521,51551,51581,51631,51691,51721,51871,51941,51971,51991,52021,52051,52081,52121,52181,52201,52291,52301,52321,52361,52391,52501,52511,52541,52561,52571,52631,52691,52711,52721,52861,52901,52951,52981,53051,53101,53161,53171,53201,53231,53281,53381,53401,53411,53441,53551,53591,53611,53681,53731,53791,53831,53861,53881,53891,53951,54001,54011,54091,54101,54121,54151,54181,54251,54311,54331,54361,54371,54401,54421,54521,54541,54581,54601,54631,54721,54751,54851,54881,54941,55001,55021,55051,55061,55171,55201,55291,55331,55351,55381,55411,55441,55501,55511,55541,55621,55631,55661,55681,55691,55711,55721,55871,55901,55921,55931,56041,56081,56101,56131,56171,56311,56401,56431,56501,56531,56591,56611,56671,56681,56701,56711,56731,56821,56891,56911,56921,56941,56951,57041,57131,57191,57221,57241,57251,57271,57301,57331,57571,57601,57641,57731,57751,57781,57791,57881,57901,57991,58031,58061,58111,58151,58171,58211,58231,58271,58321,58391,58411,58441,58451,58481,58511,58601,58631,58661,58711,58741,58771,58831,58901,58921,58991,59011,59021,59051,59141,59221,59281,59341,59351,59441,59471,59561,59581,59611,59621,59651,59671,59771,59791,59921,59951,59971,59981,60041,60091,60101,60161,60251,60271,60331,60521,60601,60611,60631,60661,60761,60811,60821,60901,60961,61001,61031,61051,61091,61121,61141,61151,61211,61231,61261,61291,61331,61381,61441,61471,61511,61561,61631,61651,61681,61751,61781,61861,61871,61961,61981,61991,62011,62071,62081,62131,62141,62171,62191,62201,62311,62351,62401,62501,62581,62591,62701,62731,62761,62791,62801,62851,62861,62921,62971,62981,63031,63131,63211,63241,63281,63311,63331,63361,63391,63421,63521,63541,63601,63611,63671,63691,63761,63781,63841,63901,64081,64091,64151,64171,64231,64271,64301,64381,64451,64591,64601,64621,64661,64781,64811,64871,64891,64901,64921,64951,65011,65071,65101,65111,65141,65171,65371,65381,65521,65551,65581,65651,65701,65731,65761,65831,65851,65881,65921,65951,65981,66041,66071,66161,66191,66221,66271,66301,66361,66431,66491,66541,66571,66601,66701,66721,66751,66791,66821,66841,66851,66931,67021,67061,67121,67141,67181,67211,67231,67261,67271,67391,67411,67421,67481,67511,67531,67601,67631,67651,67741,67751,67801,67891,67901,67931,67961,68041,68071,68111,68141,68161,68171,68261,68281,68311,68351,68371,68491,68501,68521,68531,68581,68611,68711,68771,68791,68821,68881,68891,69001,69011,69031,69061,69151,69191,69221,69341,69371,69401,69431,69481,69491,69661,69691,69761,69821,69911,69931,69941,69991,70001,70051,70061,70111,70121,70141,70181,70201,70241,70271,70321,70351,70381,70451,70481,70501,70571,70621,70841,70891,70901,70921,70951,70981,70991,71011,71081,71161,71171,71191,71261,71341,71411,71471,71551,71671,71711,71741,71761,71821,71861,71881,71941,71971,72031,72091,72101,72161,72211,72221,72251,72271,72341,72421,72431,72461,72481,72551,72661,72671,72701,72871,72901,72911,72931,73061,73091,73121,73141,73181,73291,73331,73351,73361,73421,73471,73561,73571,73651,73681,73721,73751,73771,73951,73961,74021,74051,74071,74101,74131,74161,74201,74231,74311,74381,74411,74441,74471,74521,74531,74551,74561,74611,74731,74761,74771,74821,74831,74861,74891,74941,75011,75041,75161,75181,75211,75391,75401,75431,75511,75521,75541,75571,75611,75641,75721,75731,75781,75821,75931,75941,75991,76001,76031,76081,76091,76231,76261,76421,76441,76471,76481,76511,76541,76561,76631,76651,76771,76781,76801,76831,76871,76961,76991,77041,77081,77101,77141,77171,77191,77201,77261,77291,77351,77431,77471,77491,77521,77551,77591,77611,77621,77641,77681,77711,77731,77761,77801,77951,78031,78041,78101,78121,78191,78241,78301,78311,78341,78401,78511,78541,78571,78691,78721,78781,78791,78901,78941,79031,79111,79151,79181,79201,79231,79241,79301,79411,79451,79481,79531,79561,79601,79621,79631,79691,79801,79811,79841,79861,79901,80021,80051,80071,80111,80141,80191,80221,80231,80251,80341,80471,80491,80611,80621,80651,80671,80681,80701,80761,80831,80911,81001,81031,81041,81071,81101,81131,81181,81281,81331,81371,81401,81421,81551,81611,81671,81701,81761,81901,81931,81971,82021,82031,82051,82141,82171,82231,82241,82261,82301,82351,82361,82421,82471,82531,82561,82571,82591,82601,82651,82721,82781,82811,82891,82981,83071,83101,83221,83231,83311,83341,83401,83431,83471,83561,83591,83621,83641,83701,83761,83791,83891,83911,83921,84011,84061,84121,84131,84181,84191,84211,84221,84391,84401,84421,84431,84481,84521,84551,84631,84691,84701,84731,84751,84761,84811,84871,84961,84991,85021,85061,85081,85091,85121,85201,85331,85361,85381,85411,85451,85531,85571,85601,85621,85661,85691,85711,85751,85781,85831,85931,85991,86011,86111,86131,86161,86171,86201,86291,86311,86341,86351,86371,86381,86441,86461,86491,86501,86531,86561,86711,86771,86851,86861,86951,86981,87011,87041,87071,87121,87151,87181,87211,87221,87251,87281,87421,87481,87491,87511,87541,87631,87641,87671,87691,87701,87721,87751,87811,87881,87911,87931,87961,87991,88001,88211,88241,88261,88301,88321,88411,88471,88591,88651,88661,88681,88721,88741,88771,88801,88811,88861,88951,89021,89041,89051,89071,89101,89231,89261,89371,89381,89431,89491,89501,89521,89561,89591,89611,89671,89681,89821,89891,90001,90011,90031,90071,90121,90191,90271,90281,90371,90401,90481,90511,90631,90641,90731,90821,90841,90901,90911,90931,90971,91081,91121,91141,91151,91291,91331,91381,91411,91541,91571,91591,91621,91631,91691,91711,91771,91781,91801,91811,91841,91921,91951,91961,92041,92051,92111,92221,92251,92311,92381,92401,92431,92461,92551,92581,92641,92671,92681,92761,92791,92801,92821,92831,92861,92921,92941,92951,93001,93131,93151,93241,93251,93281,93371,93481,93491,93581,93601,93701,93761,93811,93851,93871,93901,93911,93941,93971,94111,94121,94151,94201,94261,94291,94321,94331,94351,94421,94441,94531,94541,94561,94621,94651,94771,94781,94811,94841,94951,94961,95021,95071,95101,95111,95131,95191,95231,95261,95311,95401,95441,95461,95471,95531,95561,95581,95621,95651,95701,95731,95791,95801,95881,95891,95911,95971,96001,96181,96211,96221,96281,96331,96401,96431,96451,96461,96581,96601,96661,96671,96731,96821,96851,96911,96931,97001,97021,97081,97151,97171,97231,97241,97301,97381,97441,97501,97511,97561,97571,97651,97711,97771,97841,97861,97871,97931,97961,98011,98041,98081,98101,98221,98251,98321,98411,98491,98561,98621,98641,98711,98731,98801,98911,98981,99041,99131,99181,99191,99241,99251,99371,99391,99401,99431,99551,99571,99581,99611,99661,99721,99761,99871,99881,99901,99961,99971,99991]
res = []

for p in prime5[:N]:
    res.append(str(p))

print(" ".join(res))

Solution (Python):
n=int(input())
NMAX=55555
is_prime = [True]*NMAX
for i in range(2, NMAX):
    if is_prime[i]:
        for j in range(2*i, NMAX, i):
            is_prime[j] = False

prime=[]
for i in range(len(is_prime)):
  if is_prime[i] == True:
    prime.append(i)
    is_prime[i]=False
prime=[i for i in prime if i%5==1]
prime=prime[1:]
ans=prime[:n]
print(*ans)

Solution (Python):

import math

n = int(input())

primes = []

x = 11
while len(primes)<n:
    max_ = int( math.sqrt(x) )    
    is_prime = True
    for i in range(3,max_+1,2):
        if x%i == 0:
            is_prime = False
            break

    if is_prime:
        primes.append(x)

    x = x+10

print(*primes, sep = ' ')

Solution (Python):

import math
N = int(input())


def primes(x):
    if x < 2:
        return []
    primes = [i for i in range(x)]
    primes[1] = 0  
    
    for prime in primes:
        if prime > math.sqrt(x):
            break
        if prime == 0:
            continue
        for non_prime in range(2 * prime, x, prime):
            primes[non_prime] = 0
    return [prime for prime in primes if prime != 0]

prime_list = primes(55555)  
prime_list = [x for x in prime_list if x%5 == 1] 

sel_num_list = prime_list[:N]
print(" ".join(map(str, sel_num_list)))

Solution (Python):
n = int(input())
p = []
b = [True for i in range(55555)]
for i in range(2, 55555+1):
    if b[i-1]:
        k = 1
        while True:
            if k*i >= 55555:
                break
            b[k*i-1] = False
            k += 1
        if (i-1)%5 == 0:
            p.append(str(i))
            if len(p) > n:
                break
print(" ".join(p[0:n]))