2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								USING:  help.markup  help.syntax  math  sequences  ;
  
						 
					
						
							
								
									
										
										
										
											2007-12-26 21:59:39 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								IN:  math.primes  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ next-prime prime? } related-words
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  next-prime  
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $values { "n"  integer  } { "p"  "a prime number"  } }
							 
						 
					
						
							
								
									
										
										
										
											2007-12-26 21:59:39 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{ $description "Return the next prime number greater than "  { $snippet "n"  } "."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  prime?  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values { "n"  "an integer"  } { "?"  "a boolean"  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Test if an integer is a prime number."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-05-20 06:38:27 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ nprimes primes-upto primes-between } related-words
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  nprimes  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values { "n"  "a non-negative integer"  } { "seq"  "a sequence"  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Return a sequence containing the "  { $snippet "n"  } " first primes numbers."  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-26 21:59:39 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  primes-upto  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values { "n"  "an integer"  } { "seq"  "a sequence"  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Return a sequence containing all the prime numbers smaller or equal to "  { $snippet "n"  } "."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  primes-between  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values { "low"  "an integer"  } { "high"  "an integer"  } { "seq"  "a sequence"  } }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Return a sequence containing all the prime numbers between "  { $snippet "low"  } " and "  { $snippet "high"  } "."  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  find-relative-prime  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "n"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "p"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Returns a number that is relatively prime to "  { $snippet "n"  } "."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  find-relative-prime*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "n"  integer  } { "guess"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "p"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Returns a number that is relatively prime to "  { $snippet "n"  } ", starting by trying "  { $snippet "guess"  } "."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  random-prime  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "numbits"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "p"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Returns a prime number exactly "  { $snippet "numbits"  } " bits in length, with the topmost bit set to one."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								HELP:  unique-primes  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $values
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 19:11:24 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { "n"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "numbits"  integer  }
							 
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { "seq"  sequence  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Generates a sequence of "  { $snippet "n"  } " unique prime numbers with exactly "  { $snippet "numbits"  } " bits."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ARTICLE: "math.primes"  "Prime numbers" 
							 
						 
					
						
							
								
									
										
										
										
											2011-08-26 19:20:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"The "  { $vocab-link "math.primes"  } " vocabulary implements words related to prime numbers. Several useful vocabularies exist for testing primality. The Sieve of Eratosthenes in "  { $vocab-link "math.primes.erato"  } " is useful for testing primality below five million. For larger integers, "  { $vocab-link "math.primes.miller-rabin"  } " is a fast probabilistic primality test. The "  { $vocab-link "math.primes.lucas-lehmer"  } " vocabulary implements an algorithm for finding huge Mersenne prime numbers."  $nl 
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"Testing if a number is prime:"  
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $subsections prime? }
							 
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"Generating prime numbers:"  
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $subsections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    next-prime
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    primes-upto
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    primes-between
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    random-prime
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"Generating relative prime numbers:"  
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $subsections
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    find-relative-prime
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    find-relative-prime*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"Make a sequence of random prime numbers:"  
						 
					
						
							
								
									
										
										
										
											2009-10-01 15:56:36 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								{ $subsections unique-primes } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-10 14:47:51 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ABOUT: "math.primes"