47 lines
		
	
	
		
			857 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			857 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								id: 5900f4a21000cf542c50ffb5
							 | 
						||
| 
								 | 
							
								title: 'Problem 310: Nim Square'
							 | 
						||
| 
								 | 
							
								challengeType: 5
							 | 
						||
| 
								 | 
							
								forumTopicId: 301966
							 | 
						||
| 
								 | 
							
								dashedName: problem-310-nim-square
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --description--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Alice and Bob play the game Nim Square.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Nim Square is just like ordinary three-heap normal play Nim, but the players may only remove a square number of stones from a heap.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The number of stones in the three heaps is represented by the ordered triple (a,b,c).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If 0≤a≤b≤c≤29 then the number of losing positions for the next player is 1160.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Find the number of losing positions for the next player if 0≤a≤b≤c≤100 000.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --hints--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`euler310()` should return 2586528661783.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								assert.strictEqual(euler310(), 2586528661783);
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --seed--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## --seed-contents--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								function euler310() {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return true;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								euler310();
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# --solutions--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								// solution required
							 | 
						||
| 
								 | 
							
								```
							 |