Let $\mathbb{N} = \{1, 2, 3, \ldots\}$ be the set of positive integers. Find all functions $f$, defined on $\mathbb{N}$ and taking values in $\mathbb{N}$, such that $(n-1)^2< f(n)f(f(n)) < n^2+n$ for every positive integer $n$.
1. **Base Case:**
   - For \( n = 1 \), the given inequality is:
     \[
     (1-1)^2 < f(1)f(f(1)) < 1^2 + 1
     \]
     Simplifying, we get:
     \[
     0 < f(1)f(f(1)) < 2
     \]
     Since \( f(1) \) and \( f(f(1)) \) are positive integers, the only possibility is:
     \[
     f(1)f(f(1)) = 1
     \]
     This implies \( f(1) = 1 \).

2. **Inductive Step:**
   - Assume that \( f(i) = i \) for all \( 1 \leq i \leq k-1 \). We need to show that \( f(k) = k \).

3. **Case 1: \( f(k) < k \):**
   - Let \( f(k) = k_0 \). By the induction hypothesis, \( f(k_0) = k_0 \).
   - Since \( k_0 \) is a positive integer and \( f(k) < k \), we have \( k_0 \leq k-1 \).
   - Therefore:
     \[
     f(k)f(f(k)) = k_0 f(k_0) = k_0^2
     \]
     Given the inequality:
     \[
     (k-1)^2 < f(k)f(f(k)) < k^2 + k
     \]
     Substituting \( f(k)f(f(k)) = k_0^2 \), we get:
     \[
     (k-1)^2 < k_0^2 < k^2 + k
     \]
     Since \( k_0 \leq k-1 \), \( k_0^2 \leq (k-1)^2 \), which contradicts \( (k-1)^2 < k_0^2 \). Hence, \( f(k) \geq k \).

4. **Case 2: \( f(k) > k \):**
   - Let \( f(k) = k_0 \). We need to consider two sub-cases:
     - **Sub-case 2.1: \( f(k_0) \geq k \):**
       - Then:
         \[
         f(k)f(f(k)) = k_0 f(k_0) \geq k_0 k \geq (k+1)k = k^2 + k
         \]
         This contradicts the upper bound \( f(k)f(f(k)) < k^2 + k \).
     - **Sub-case 2.2: \( f(k_0) < k \):**
       - Let \( f(k_0) = k_1 \). By the induction hypothesis, \( f(k_1) = k_1 \) since \( k_1 < k \).
       - Consider the inequality for \( n = k_0 \):
         \[
         (k_0-1)^2 < f(k_0)f(f(k_0)) < k_0^2 + k_0
         \]
         Substituting \( f(k_0) = k_1 \) and \( f(f(k_0)) = f(k_1) = k_1 \), we get:
         \[
         (k_0-1)^2 < k_1^2 < k_0^2 + k_0
         \]
         Since \( k_1 < k \), \( k_1 \leq k-1 \), and thus \( k_1^2 \leq (k-1)^2 \), which contradicts \( (k_0-1)^2 < k_1^2 \).

5. **Conclusion:**
   - Both cases lead to contradictions unless \( f(k) = k \). By the Principle of Strong Induction, we conclude that \( f(n) = n \) for all \( n \in \mathbb{N} \).

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