56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 5900f3c81000cf542c50fedb
 | |
| title: 'Problem 92: Square digit chains'
 | |
| challengeType: 5
 | |
| forumTopicId: 302209
 | |
| dashedName: problem-92-square-digit-chains
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| A number chain is created by continuously adding the square of the digits in a number to form a new number until it has been seen before.
 | |
| 
 | |
| For example,
 | |
| 
 | |
| <div style='margin-left: 4em;'>
 | |
|   44 → 32 → 13 → 10 → <strong>1</strong> → <strong>1</strong><br>
 | |
|   85 → <strong>89</strong> → 145 → 42 → 20 → 4 → 16 → 37 → 58 → <strong>89</strong>
 | |
| </div>
 | |
| 
 | |
| Therefore any chain that arrives at 1 or 89 will become stuck in an endless loop. What is most amazing is that EVERY starting number will eventually arrive at 1 or 89.
 | |
| 
 | |
| How many starting numbers below ten million will arrive at 89?
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| `squareDigitChains()` should return a number.
 | |
| 
 | |
| ```js
 | |
| assert(typeof squareDigitChains() === 'number');
 | |
| ```
 | |
| 
 | |
| `squareDigitChains()` should return 8581146.
 | |
| 
 | |
| ```js
 | |
| assert.strictEqual(squareDigitChains(), 8581146);
 | |
| ```
 | |
| 
 | |
| # --seed--
 | |
| 
 | |
| ## --seed-contents--
 | |
| 
 | |
| ```js
 | |
| function squareDigitChains() {
 | |
| 
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| squareDigitChains();
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```js
 | |
| // solution required
 | |
| ```
 |