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."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-07 14:57:49 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								{ primes-upto primes-between } related-words
							 
						 
					
						
							
								
									
										
										
										
											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
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "numbits"  integer  } { "n"  integer  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { "seq"  sequence  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $description "Generates a sequence of "  { $snippet "n"  } " unique prime numbers with exactly "  { $snippet "numbits"  } " bits."  } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ARTICLE: "math.primes"  "Prime numbers" 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-10 15:01:21 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"The "  { $vocab-link "math.primes"  } " vocabulary implements words related to prime numbers. Serveral 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 probabilstic 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:"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection prime? }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"Generating prime numbers:"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection next-prime }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection primes-upto }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection primes-between }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection random-prime }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"Generating relative prime numbers:"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection find-relative-prime }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection find-relative-prime* }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								"Make a sequence of random prime numbers:"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ $subsection unique-primes } ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ABOUT: "math.primes"