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])
 
 
				Cm4gPSBpbnQoaW5wdXQoKSkKZiA9IFswXSoobisxKQoKZm9yIGkgaW4gcmFuZ2UoMixpbnQobioqLjUpKzEpOgoJaWYgZltpXSA9PSAwOiAjIHNvIG5ndXllbiB0bwoJCWZvciBqIGluIHJhbmdlKGkqaSxuKzEsaSk6CgkJCWZbal0gPSBpCgpkZWYgc3VtZGl2KHgpOgoJeF8gPSB4CglkID0ge30KCXdoaWxlIGZbeF0gIT0gMDoKCQlkW2ZbeF1dID0gZC5nZXQoZlt4XSwwKSsxCgkJeC8vPWZbeF0KCWRbeF0gPSBkLmdldCh4LDApKzEKCWFucyA9IDEKCWZvciBrLHYgaW4gZC5pdGVtcygpOgoJCWFucyo9KGsqKih2KzEpLTEpLy8oay0xKQoJcmV0dXJuIGFucy14XwoKVCA9IFsgMCBpZiBpPDIgZWxzZSBzdW1kaXYoaSkgZm9yIGkgaW4gcmFuZ2UobisxKV0KCmZvciBpIGluIHJhbmdlKDIsbisxKToKCWlmIFRbaV0hPWkgYW5kIGk8PVRbaV08PW4gYW5kIFRbVFtpXV09PWk6CgkJcHJpbnQoaSxUW2ldKQoJCQo=