47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 5900f4a11000cf542c50ffb3
 | |
| title: 'Problem 308: An amazing Prime-generating Automaton'
 | |
| challengeType: 5
 | |
| forumTopicId: 301962
 | |
| dashedName: problem-308-an-amazing-prime-generating-automaton
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| A program written in the programming language Fractran consists of a list of fractions.
 | |
| 
 | |
| The internal state of the Fractran Virtual Machine is a positive integer, which is initially set to a seed value. Each iteration of a Fractran program multiplies the state integer by the first fraction in the list which will leave it an integer.
 | |
| 
 | |
| For example, one of the Fractran programs that John Horton Conway wrote for prime-generation consists of the following 14 fractions:1791 , 7885 , 1951 , 2338 , 2933 , 7729 , 9523 , 7719 , 117 , 1113 , 1311 , 152 , 17 , 551 . Starting with the seed integer 2, successive iterations of the program produce the sequence: 15, 825, 725, 1925, 2275, 425, ..., 68, 4, 30, ..., 136, 8, 60, ..., 544, 32, 240, ...
 | |
| 
 | |
| The powers of 2 that appear in this sequence are 22, 23, 25, ... It can be shown that all the powers of 2 in this sequence have prime exponents and that all the primes appear as exponents of powers of 2, in proper order!
 | |
| 
 | |
| If someone uses the above Fractran program to solve Project Euler Problem 7 (find the 10001st prime), how many iterations would be needed until the program produces 210001st prime ?
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| `euler308()` should return 1539669807660924.
 | |
| 
 | |
| ```js
 | |
| assert.strictEqual(euler308(), 1539669807660924);
 | |
| ```
 | |
| 
 | |
| # --seed--
 | |
| 
 | |
| ## --seed-contents--
 | |
| 
 | |
| ```js
 | |
| function euler308() {
 | |
| 
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| euler308();
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```js
 | |
| // solution required
 | |
| ```
 |