Do not use Eratosthene sieve if n < 1e6 since we have a static primes list
							parent
							
								
									2bbf9f3297
								
							
						
					
					
						commit
						aaa4b2a62f
					
				| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
! Copyright (c) 2007 Samuel Tardieu.
 | 
			
		||||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: bit-arrays kernel lazy-lists math math.functions math.ranges sequences ;
 | 
			
		||||
USING: bit-arrays kernel lazy-lists math math.functions math.primes.list
 | 
			
		||||
       math.ranges sequences ;
 | 
			
		||||
IN: math.erato
 | 
			
		||||
 | 
			
		||||
<PRIVATE
 | 
			
		||||
| 
						 | 
				
			
			@ -35,4 +36,8 @@ TUPLE: erato limit bits latest ;
 | 
			
		|||
PRIVATE>
 | 
			
		||||
 | 
			
		||||
: lerato ( n -- lazy-list )
 | 
			
		||||
  <erato> 2 [ drop next-prime ] curry* lfrom-by [ ] lwhile ;
 | 
			
		||||
  dup 1000003 < [
 | 
			
		||||
    0 primes-under-million seq>list swap [ <= ] curry lwhile
 | 
			
		||||
  ] [
 | 
			
		||||
    <erato> 2 [ drop next-prime ] curry* lfrom-by [ ] lwhile
 | 
			
		||||
  ] if ;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue