Let $k$ be a positive integer. Find all functions $f:\mathbb{N}\to \mathbb{N}$ satisfying the following two conditions:\\

• For infinitely many prime numbers $p$ there exists a positve integer $c$ such that $f(c)=p^k$.\\

• For all positive integers $m$ and $n$, $f(m)+f(n)$ divides $f(m+n)$.
1. **Claim 1:** \( f(1) = 1 \)

   **Proof:**
   - We can prove \( f(1) \mid f(n) \) for all \( n \) by induction.
   - There are two distinct primes \( p \) and \( q \) and two integers \( c_1 \) and \( c_2 \) such that \( f(c_1) = p^k \) and \( f(c_2) = q^k \).
   - Since \( f(1) \mid f(c_1) \) and \( f(1) \mid f(c_2) \), we have \( f(1) \mid \gcd(p^k, q^k) \). Since \( p \) and \( q \) are distinct primes, \( \gcd(p^k, q^k) = 1 \). Therefore, \( f(1) = 1 \).

2. **Claim 2:** \( f \) is strictly increasing.

   **Proof:**
   - Consider \( P(m, 1) \): \( f(m) + 1 \mid f(m+1) \).
   - Since \( f(m) + 1 \leq f(m+1) \) and \( f(m) \geq 1 \), it follows that \( f \) is strictly increasing.

3. **Claim 3:** \( f(n) \geq n \) for all \( n \).

   **Proof:**
   - We use induction on \( n \).
   - Base case: \( f(1) = 1 \).
   - Inductive step: Assume \( f(m) \geq m \) for all \( m \leq n \). Then \( f(n+1) \geq f(n) + 1 \geq n + 1 \).

4. **Claim 4:** \( f(n) = n \) for all \( n \).

   **Proof:**
   - We use induction on \( n \).
   - Base case: \( f(1) = 1 \).
   - Inductive step: Assume \( f(m) = m \) for all \( m \leq t \).
   - From the problem statement, there are infinitely many primes \( p \) such that \( \exists c \) with \( f(c) = p^k \).
   - Consider \( P(c_n - t - 1, t + 1) \): \( p^k \mid f(c_n - t - 1) + f(t + 1) \).
   - Let \( f(c_n - t - 1) = p_n^a - f(t + 1) \) and \( f(c_n - t) = p_n^b - t \).
   - Since there are infinitely many primes \( p_n \), there exist \( a \) and \( b \) such that \( S(a, b) \) is infinite.
   - Let \( m \rightarrow c_n - t - 1 \) in \( P(m, 1) \): \( p_n^b - t \mid p_n^a - f(t + 1) + 1 \).
   - This implies \( b \geq a \) and \( (f(t + 1) - 1)^b - t^a \mid p_n^a - f(t + 1) + 1 \).
   - Let \( n \rightarrow \infty \), we get \( (f(t + 1) - 1)^b - t^a = 0 \), which implies \( f(t + 1) = t + 1 \).
   - Therefore, by induction, \( f(n) = n \) for all \( n \).

The final answer is \( \boxed{ f(n) = n } \).