a short functional style solution:
HappyQ[n_Integer?Positive] := NestWhile[ Total[IntegerDigits[#]^2] &, n, Unequal, All ] == 1 NextHappyPrime[n_Integer?Positive] := NestWhile[ NextPrime, NextPrime[n], Composition[Not, HappyQ] ] HappyPrimeN[n_Integer?Positive] := Nest[NextHappyPrime, 7, n - 1] HappyPrimeN[2000]