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=