--- title: Iterated digits squaring id: 5a23c84252665b21eecc7ec1 challengeType: 5 forumTopicId: 302291 --- ## 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
## Instructions
Write a function that takes a number as a parameter and returns 1 or 89 after performing the mentioned process.
## Tests
```yml tests: - text: iteratedSquare should be a function. testString: assert(typeof iteratedSquare=='function'); - text: iteratedSquare(4) should return a number. testString: assert(typeof iteratedSquare(4)=='number'); - text: iteratedSquare(4) should return 89. testString: assert.equal(iteratedSquare(4),89); - text: iteratedSquare(7) should return 1. testString: assert.equal(iteratedSquare(7),1); - text: iteratedSquare(15) should return 89. testString: assert.equal(iteratedSquare(15),89); - text: iteratedSquare(20) should return 89. testString: assert.equal(iteratedSquare(20),89); - text: iteratedSquare(70) should return 1. testString: assert.equal(iteratedSquare(70),1); - text: iteratedSquare(100) should return 1. testString: assert.equal(iteratedSquare(100),1); ```
## Challenge Seed
```js function iteratedSquare(n) { } ```
## 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; } ```