--- title: Iterated digits squaring id: 5a23c84252665b21eecc7ec1 localeTitle: 5a23c84252665b21eecc7ec1 challengeType: 5 --- ## Description
Si agrega el cuadrado de los dígitos de un número natural (un entero más grande que cero), siempre termina con 1 o 89:
 15 -> 26 -> 40 -> 16 -> 37 -> 58 -> 89 
7 -> 49 -> 97 -> 130 -> 10 -> 1 
Escriba una función que tome un número como parámetro y devuelva 1 u 89 después de realizar el proceso mencionado.
## Instructions
## Tests
```yml tests: - text: iteratedSquare debería ser una función. testString: 'assert(typeof iteratedSquare=="function","iteratedSquare should be a function.");' - text: iteratedSquare(4) debe devolver un número. testString: 'assert(typeof iteratedSquare(4)=="number","iteratedSquare(4) should return a number.");' - text: iteratedSquare(4) debe devolver 89 . testString: 'assert.equal(iteratedSquare(4),89,"iteratedSquare(4) should return 89.");' - text: iteratedSquare(7) debe devolver 1 . testString: 'assert.equal(iteratedSquare(7),1,"iteratedSquare(7) should return 1.");' - text: iteratedSquare(15) debe devolver 89 . testString: 'assert.equal(iteratedSquare(15),89,"iteratedSquare(15) should return 89.");' - text: iteratedSquare(20) debe devolver 89 . testString: 'assert.equal(iteratedSquare(20),89,"iteratedSquare(20) should return 89.");' - text: iteratedSquare(70) debe devolver 1 . testString: 'assert.equal(iteratedSquare(70),1,"iteratedSquare(70) should return 1.");' - text: iteratedSquare(100) debe devolver 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; } ```