Let $\mathbb{Z^+}$ denote the set of positive integers. Find all functions $f:\mathbb{Z^+} \to \mathbb{Z^+}$ satisfying the condition
$$ f(a) + f(b) \mid (a + b)^2$$
for all $a,b \in \mathbb{Z^+}$
1. **Initial Assertion**: Let \( P(a, b) \) denote the assertion \( f(a) + f(b) \mid (a + b)^2 \).

2. **Special Case \( P(a, a) \)**: 
   \[
   P(a, a): f(a) + f(a) \mid (2a)^2 \implies 2f(a) \mid 4a^2 \implies f(a) \mid 2a^2
   \]
   This implies that \( f(a) \) must be a divisor of \( 2a^2 \).

3. **Considering \( f(1) \)**:
   \[
   P(1, 1): 2f(1) \mid 4 \implies f(1) \in \{1, 2\}
   \]

4. **Analyzing \( f(p-1) \) for a prime \( p \)**:
   \[
   P(p-1, 1): f(p-1) + f(1) \mid p^2
   \]
   - If \( f(1) = 1 \):
     \[
     f(p-1) + 1 \mid p^2 \implies f(p-1) \in \{p-1, p^2-1\}
     \]
     - If \( f(p-1) = p^2 - 1 \):
       \[
       p^2 - 1 \mid 2(p-1)^2 \implies p^2 - 1 \mid 2p^2 - 4p + 2
       \]
       This is not possible for large \( p \) because \( p^2 - 1 > 2p^2 - 4p + 2 \) for large \( p \).

     - Therefore, \( f(p-1) = p - 1 \).

5. **Considering \( f(1) = 2 \)**:
   - If \( f(1) = 2 \):
     \[
     f(p-1) + 2 \mid p^2 \implies f(p-1) \in \{p-2, p^2-2\}
     \]
     - If \( f(p-1) = p^2 - 2 \):
       \[
       p^2 - 2 \mid 2(p-1)^2 \implies p^2 - 2 \mid 2p^2 - 4p + 2
       \]
       This is not possible for large \( p \) because \( p^2 - 2 > 2p^2 - 4p + 2 \) for large \( p \).

     - Therefore, \( f(p-1) = p - 2 \).

6. **Contradiction for \( f(1) = 2 \)**:
   - If \( f(1) = 2 \), then for large \( x \):
     \[
     x - 1 \mid 2x^2
     \]
     This is not possible as \( x - 1 \) and \( 2x^2 \) are coprime for large \( x \).

7. **Conclusion \( f(1) = 1 \)**:
   - Thus, \( f(1) = 1 \).

8. **General Case**:
   - Let \( M \) be a sufficiently large fixed point of \( f \) (which we know exists).
   \[
   P(M, n): f(n) + M \mid n^2 + 2Mn + M^2
   \]
   - So \( f(n) + M \) divides:
     \[
     n^2 + 2Mn + M^2 + (f(n) + M)(f(n) - M - 2n) = (n - f(n))^2
     \]
   - Since \( M \) is sufficiently large, we get \( (n - f(n))^2 = 0 \), so \( f(n) = n \).

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