IMO олимпиада по математике 2010 года | Казахстанские олимпиады

Обозначим через N\mathbb{N} множество всех целых положительных чисел. Найдите все функции g:NNg:\mathbb{N}\to \mathbb{N} такие, что число (g(m)+n)(m+g(n))(g(m)+n)(m+g(n)) является точным квадратом при любых m,nNm,n\in \mathbb{N}.