--- title: Iterated digits squaring id: 5a23c84252665b21eecc7ec1 challengeType: 5 --- ## Description
If you add the square of the digits of a Natural number (an integer bigger than zero), you always end with either 1 or 89:
15 -> 26 -> 40 -> 16 -> 37 -> 58 -> 89
7 -> 49 -> 97 -> 130 -> 10 -> 1
Write a function that takes a number as a parameter and returns 1 or 89 after performing the mentioned process.
## Instructions
## Tests
```yml tests: - text: iteratedSquare should be a function. testString: assert(typeof iteratedSquare=='function','iteratedSquare should be a function.'); - text: iteratedSquare(4) should return a number. testString: assert(typeof iteratedSquare(4)=='number','iteratedSquare(4) should return a number.'); - text: iteratedSquare(4) should return 89. testString: assert.equal(iteratedSquare(4),89,'iteratedSquare(4) should return 89.'); - text: iteratedSquare(7) should return 1. testString: assert.equal(iteratedSquare(7),1,'iteratedSquare(7) should return 1.'); - text: iteratedSquare(15) should return 89. testString: assert.equal(iteratedSquare(15),89,'iteratedSquare(15) should return 89.'); - text: iteratedSquare(20) should return 89. testString: assert.equal(iteratedSquare(20),89,'iteratedSquare(20) should return 89.'); - text: iteratedSquare(70) should return 1. testString: assert.equal(iteratedSquare(70),1,'iteratedSquare(70) should return 1.'); - text: iteratedSquare(100) should return 1. testString: assert.equal(iteratedSquare(100),1,'iteratedSquare(100) should return 1.'); ```
## Challenge Seed
```js function iteratedSquare (n) { // Good luck! } ```
## Solution
```js function iteratedSquare (n) { var total; while (n != 89 && n != 1) { total = 0; while (n > 0) { total += Math.pow(n % 10, 2); n = Math.floor(n/10); } n = total; } return n; } ```