
n = int(input())
f = [0]*(n+1)

for i in range(2,int(n**.5)+1):
	if f[i] == 0: # so nguyen to
		for j in range(i*i,n+1,i):
			f[j] = i

def sumdiv(x):
	x_ = x
	d = {}
	while f[x] != 0:
		d[f[x]] = d.get(f[x],0)+1
		x//=f[x]
	d[x] = d.get(x,0)+1
	ans = 1
	for k,v in d.items():
		ans*=(k**(v+1)-1)//(k-1)
	return ans-x_

T = [ 0 if i<2 else sumdiv(i) for i in range(n+1)]

for i in range(2,n+1):
	if T[i]!=i and i<=T[i]<=n and T[T[i]]==i:
		print(i,T[i])
		
