]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - factor/factor.6
Comment out debugging build (it still randomly crashes though) pointed out
[bsdgames-darwin.git] / factor / factor.6
index e51896a39b86867c9ec1eaeab9c56a73b6e2cf55..a5ee2d6f4451211a3aa50812a5d4673f96cdc676 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: factor.6,v 1.8 2003/08/07 09:37:12 agc Exp $
+.\"    $NetBSD: factor.6,v 1.18 2020/10/12 13:53:43 christos Exp $
 .\"
 .\" Copyright (c) 1989, 1993
 .\"    The Regents of the University of California.  All rights reserved.
 .\"    @(#)factor.6    8.1 (Berkeley) 5/31/93
 .\"
 .\"
-.\" By: Landon Curt Noll   chongo@toad.com,   ...!{sun,tolsoft}!hoptoad!chongo
+.\" By Landon Curt Noll, http://www.isthe.com/chongo/index.html /\oo/\
 .\"
-.\"   chongo <for a good prime call: 391581 * 2^216193 - 1> /\oo/\
-.\"
-.Dd May 31, 1993
+.Dd October 12, 2020
 .Dt FACTOR 6
 .Os
 .Sh NAME
-.Nm factor ,
-.Nm primes
-.Nd factor a number, generate primes
+.Nm factor
+.Nd factor a number
 .Sh SYNOPSIS
 .Nm
+.Op Fl hx
 .Op Ar number ...
-.br
-.Nm primes
-.Op Ar start Op Ar stop
 .Sh DESCRIPTION
 The
 .Nm
-utility will factor integers between \-2147483648 and 2147483647 inclusive.
+utility factors integers larger than 
+.Dv 0 .
 When a number is factored, it is printed, followed by a
 .Dq \&: ,
-and the list of factors on a single line.
+and the list of
+.Pq prime
+factors on a single line.
 Factors are listed in ascending order, and are preceded by a space.
-If a factor divides a value more than once, it will be printed more than once.
+By default, if a factor divides a value more than once, it will be
+printed more than once.
 .Pp
 When
 .Nm
-is invoked with one or more arguments, each argument will be factored.
+is invoked with one or more
+.Ar number
+arguments, each argument will be factored.
 .Pp
 When
 .Nm
-is invoked with no arguments,
+is invoked with no
+.Ar number
+arguments,
 .Nm
 reads numbers, one per line, from standard input, until end of file or error.
 Leading white-space and empty lines are ignored.
-Numbers may be preceded by a single - or +.
+Numbers may be preceded by a single +.
+Numbers that start with
+.Dv 0x
+are interpreted as hexadecimal.
+A 
+.Dv 0
+input exits the program.
+Negative numbers are not allowed.
 Numbers are terminated by a non-digit character (such as a newline).
 After a number is read, it is factored.
-Input lines must not be longer than 255 characters.
+Input lines must not be longer than
+.Dv LINE_MAX \- 1
+(currently 2047) characters.
 .Pp
-The
-.Nm primes
-utility prints primes in ascending order, one per line, starting at or above
-.Ar start
-and continuing until, but not including
-.Ar stop .
-The
-.Ar start
-value must be at least 0 and not greater than
-.Ar stop .
-The
-.Ar stop
-value must not be greater than 4294967295.
-The default value of
-.Ar stop
-is 4294967295.
+By default,
+.Nm
+is compiled against the OpenSSL bignum implementation
+.Xr openssl_bn 3 ,
+which lets it handle arbitrarily large values.
+.Pq Note however that very large values can take a very long time to factor.
+If
+.Nm
+is compiled without OpenSSL it is limited to the maximum value of
+.Vt unsigned long .
 .Pp
-When the
-.Nm primes
-utility is invoked with no arguments,
-.Ar start
-is read from standard input.
-.Ar stop
-is taken to be 4294967295.
-The
-.Ar start
-value may be preceded by a single +.
-The
-.Ar start
-value is terminated by a non-digit character (such as a newline).
-The input line must not be longer than 255 characters.
+The following option is available:
+.Bl -tag -width flag
+.It Fl h
+If the
+.Fl h
+flag is specified, factors will be printed in "human-readable" format.
+If a factor x divides a value n (>1) times, it will appear as x^n.
+.It Fl x
+If the
+.Fl x
+flag is specified, factors will be printed in hexadecimal format.
+.El
 .Sh DIAGNOSTICS
 Out of range or invalid input results in
-.Sq ouch
-being written to standard error.
-.Sh BUGS
-.Nm
-cannot handle the
-.Dq 10 most wanted
-factor list,
-.Nm primes
-won't get you a world record.
+an appropriate error message to standard error.
+.Sh AUTHORS
+Originally by
+.An Landon Curt Noll .