Determine all strictly increasing functions $f: \mathbb{N}\to\mathbb{N}$ satisfying $nf(f(n))=f(n)^2$ for all positive integers $n$.

[i]Carl Lian and Brian Hamrick.[/i]
1. **Initial Assumptions and Verification:**
   We are given the functional equation \( nf(f(n)) = f(n)^2 \) for all positive integers \( n \). We need to determine all strictly increasing functions \( f: \mathbb{N} \to \mathbb{N} \) that satisfy this equation.

2. **Proposed Solutions:**
   The proposed solutions are:
   \[
   f(x) \equiv x \quad \text{or} \quad f(x) \equiv \begin{cases} 
   x & \text{if } x < d \\
   cx & \text{if } x \ge d 
   \end{cases}
   \]
   for some constants \( c, d \in \mathbb{N} \).

3. **Verification of Proposed Solutions:**
   - For \( f(x) = x \):
     \[
     nf(f(n)) = n \cdot f(n) = n^2 \quad \text{and} \quad f(n)^2 = n^2
     \]
     Both sides are equal, so \( f(x) = x \) is a solution.
   
   - For \( f(x) = \begin{cases} 
     x & \text{if } x < d \\
     cx & \text{if } x \ge d 
     \end{cases} \):
     - If \( n < d \):
       \[
       nf(f(n)) = n \cdot f(n) = n^2 \quad \text{and} \quad f(n)^2 = n^2
       \]
       Both sides are equal.
     - If \( n \ge d \):
       \[
       nf(f(n)) = n \cdot f(cx) = n \cdot c^2 x = c^2 n^2 \quad \text{and} \quad f(n)^2 = (cn)^2 = c^2 n^2
       \]
       Both sides are equal.

4. **Proof of Uniqueness:**
   Suppose \( f(x) \not\equiv x \). Let \( d \) be the smallest positive integer such that \( f(d) \neq d \).

5. **Claim: \( n \mid f(n) \) for all \( n \in \mathbb{N} \):**
   - Suppose not, and let \( v_p(n) > v_p(f(n)) \) for some prime \( p \).
   - Using induction, we get:
     \[
     v_p(f^k(n)) > v_p(f^{k+1}(n)) \quad \forall k \in \mathbb{N}
     \]
     This contradicts the fact that \( v_p(f^k(n)) \ge 1 \) for all \( k \in \mathbb{N} \). Hence, \( n \mid f(n) \).

6. **Form of \( f(d) \):**
   Since \( n \mid f(n) \), we can write \( f(d) = cd \) for some \( c \in \mathbb{N} \) with \( c > 1 \).

7. **Induction on \( f \):**
   Using induction, we get:
   \[
   f(c^k \cdot d) = c^{k+1} \cdot d \quad \forall k \in \mathbb{Z}_{\ge 0}
   \]

8. **General Form for \( n > d \):**
   For any \( n > d \), we can write \( f(n) = c_0 \cdot n \). Induction gives:
   \[
   f(c_0^k \cdot d) = c_0^{k+1} \cdot n \quad \forall k \in \mathbb{Z}_{\ge 0}
   \]

9. **Comparison of Terms:**
   For any \( i, j, k \in \mathbb{Z}_{\ge 0} \), we have:
   \[
   c^i \cdot d \sim c_0^j \cdot n \iff c^{i+1} \cdot d \sim c_0^{j+1} \cdot n \iff \cdots \iff c^{i+k} \cdot d \sim c_0^{j+k} \cdot n
   \]
   This implies:
   \[
   i \cdot \log c + \log d \sim j \cdot \log c_0 + \log n \iff (i+k) \cdot \log c + \log d \sim (j+k) \cdot \log c_0 + \log n
   \]
   Hence:
   \[
   i \cdot \log c - j \cdot \log c_0 \sim \log n - \log d \iff i \cdot \log c - j \cdot \log c_0 \sim (\log n - \log d) + k \cdot (\log c_0 - \log c)
   \]

10. **Contradiction:**
    - If \( c_0 \ne c \):
      - If \( c_0 > c \), fix \( \sim \) as \( > \) and any \( i, j \) such that \( i \cdot \log c - j \cdot \log c_0 > \log n - \log d \). Taking \( k \) sufficiently large gives a contradiction.
      - If \( c_0 < c \), fix \( \sim \) as \( < \) and \( i = j = 0 \). Again, taking \( k \) sufficiently large gives a contradiction (using \( \log n > \log d \)).

This completes the proof of the problem. \(\blacksquare\)

The final answer is \( \boxed{ f(x) \equiv x } \) or \( f(x) \equiv \begin{cases} x & \text{if } x < d \\ cx & \text{if } x \ge d \end{cases} \) for some constants \( c, d \in \mathbb{N} \).