-.\" Copyright (c) 1989 The Regents of the University of California.
-.\" All rights reserved.
+.\" $NetBSD: factor.6,v 1.12 2010/05/15 21:22:39 joerg Exp $
+.\"
+.\" Copyright (c) 1989, 1993
+.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Landon Curt Noll.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
+.\" 3. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" from: @(#)factor.6 5.3 (Berkeley) 6/23/90
-.\" $Id: factor.6,v 1.2 1993/08/01 07:47:05 mycroft Exp $
+.\" @(#)factor.6 8.1 (Berkeley) 5/31/93
.\"
.\"
.\" By: Landon Curt Noll chongo@toad.com, ...!{sun,tolsoft}!hoptoad!chongo
.\"
.\" chongo <for a good prime call: 391581 * 2^216193 - 1> /\oo/\
.\"
-.TH FACTOR 6 "June 23, 1990"
-.UC 7
-.SH NAME
-factor, primes \- factor a number, generate primes
-.SH SYNOPSIS
-.B factor
-[ number ] ...
-.PP
-.B primes
-[ start [ stop ]]
-.SH DESCRIPTION
+.Dd May 15, 2010
+.Dt FACTOR 6
+.Os
+.Sh NAME
+.Nm factor
+.Nd factor a number
+.Sh SYNOPSIS
+.Nm
+.Op Ar number ...
+.Sh DESCRIPTION
The
-.I factor
-utility will factor integers between -2147483648 and 2147483647 inclusive.
-When a number is factored, it is printed, followed by a ``:'',
-and the list of factors on a single line.
+.Nm
+utility factors integers larger than 1.
+When a number is factored, it is printed, followed by a
+.Dq \&: ,
+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.
-.PP
+If a factor divides a value more than once, it will be printed more than once.
+.Pp
When
-.I factor
-is invoked with one or more arguments,
-each argument will be factored.
-.PP
+.Nm
+is invoked with one or more arguments, each argument will be factored.
+.Pp
When
-.I factor
+.Nm
is invoked with no arguments,
-.I factor
+.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 +.
+Integer less than 2 are rejected.
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.
-.PP
-The
-.I primes
-utility prints primes in ascending order, one per line, starting at or above
-.B start
-and continuing until, but not including
-.B stop.
-The
-.B start
-value must be at least 0 and not greater than
-.B stop.\&
-The
-.B stop
-value must not be greater than 4294967295.
-The default value of
-.B stop
-is 4294967295.
-.PP
-When the
-.I primes
-utility is invoked with no arguments,
-.B start
-is read from standard input.
-.B Stop
-is taken to be 4294967295.
-The
-.B start
-value may be preceded by a single +.
-The
-.B start
-value is terminated by a non-digit character (such as a newline).
-The input line must not be longer than 255 characters.
-.SH DIAGNOSTICS
-Out of range or invalid input results in `ouch' being
-written to standard error.
-.SH BUGS
-.I Factor
-cannot handle the ``10 most wanted'' factor list,
-.I primes
-won't get you a world record.
+Input lines must not be longer than
+.Dv LINE_MAX \- 1
+(currently 2047) characters.
+.Pp
+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 .
+.Sh DIAGNOSTICS
+Out of range or invalid input results in
+an appropriate error message
+being written to standard error.
+.\".Sh BUGS
+.\".Nm
+.\"cannot handle the
+.\".Dq 10 most wanted
+.\"factor list.