--- 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; } ```