Solution:
Answer: There is exactly one function satisfying the described condition, namely f(k)=k2 for all k.
For the proof, let f be as required.
Step 1: Substituting m=n=1 gives 2f(1)−1∣2f(1), hence also 2f(1)−1∣2f(1)−(2f(1)−1)=1 and therefore 2f(1)−1=1, so f(1)=1.
Step 2: From now on p will always stand for a prime number with p≥7. Substituting m=n=p gives 2f(p)−p2∣2pf(p) and hence also 2f(p)−p2∣2pf(p)−p(2f(p)−p2)=p3, so
2f(p)−p2∈{−p3,−p2,−p,−1,1,p,p2,p3}
Since f(p)>0 it follows that
f(p)∈{2p2−p,2p2−1,2p2+1,2p2+p,p2,2p3+p2}.
Step 3: We set m=1,n=p and obtain f(p)+1−p∣pf(p)+1, hence also f(p)+1−p∣pf(p)+1−p(f(p)+1−p)=p2−p+1. Assume that f(p)=p2. Then it necessarily follows (note that p2−p+1 is odd) that f(p)+1−p≤1/3(p2−p+1). However, by Step 2 we have f(p)≥(p2−p)/2, so it follows that
2p2−p+1−p3p2−3p+6−6pp2+5≤3p2−p+1≤2p2−2p+1≤7p
which does not hold for p≥7. Hence the above assumption was false and we must have f(p)=p2.
Step 4: Let n∈N be arbitrary. We set m=p and obtain f(n)+p2−pn∣p3+nf(n), hence also f(n)+p2−pn∣p3+nf(n)−n(f(n)−p2−pn)=p(p2−pn+n2). For all sufficiently large primes p, f(n), and hence also the left-hand side of the last expression, is not divisible by p, therefore it follows that f(n)+p2−pn∣p2−pn+n2 and thus also f(n)+p2−pn∣(f(n)+p2−pn)−(p2−pn+n2)=f(n)−n2. Since the left-hand side can become arbitrarily large (there are infinitely many primes), it follows that f(n)−n2=0 and hence f(n)=n2.
Step 5: Checking confirms that f(k)=k2 for all k∈N indeed satisfies the condition: We have f(m)+f(n)−mn=m2+n2−mn≥2mn−mn=mn>0, and moreover (m2+n2−mn)(m+n)=m3+n3=mf(m)+nf(n), that is, f(m)+f(n)−mn is different from 0 and is a divisor of the number mf(m)+nf(n).