Annotation of src/games/factor/factor.6, Revision 1.18
1.18 ! christos 1: .\" $NetBSD: factor.6,v 1.17 2020/10/11 18:48:20 christos Exp $
1.4 cgd 2: .\"
3: .\" Copyright (c) 1989, 1993
4: .\" The Regents of the University of California. All rights reserved.
1.1 cgd 5: .\"
6: .\" This code is derived from software contributed to Berkeley by
7: .\" Landon Curt Noll.
8: .\"
9: .\" Redistribution and use in source and binary forms, with or without
10: .\" modification, are permitted provided that the following conditions
11: .\" are met:
12: .\" 1. Redistributions of source code must retain the above copyright
13: .\" notice, this list of conditions and the following disclaimer.
14: .\" 2. Redistributions in binary form must reproduce the above copyright
15: .\" notice, this list of conditions and the following disclaimer in the
16: .\" documentation and/or other materials provided with the distribution.
1.8 agc 17: .\" 3. Neither the name of the University nor the names of its contributors
1.1 cgd 18: .\" may be used to endorse or promote products derived from this software
19: .\" without specific prior written permission.
20: .\"
21: .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22: .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25: .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26: .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27: .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28: .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29: .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30: .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31: .\" SUCH DAMAGE.
32: .\"
1.4 cgd 33: .\" @(#)factor.6 8.1 (Berkeley) 5/31/93
1.1 cgd 34: .\"
35: .\"
1.13 ast 36: .\" By Landon Curt Noll, http://www.isthe.com/chongo/index.html /\oo/\
1.1 cgd 37: .\"
1.18 ! christos 38: .Dd October 12, 2020
1.3 jtc 39: .Dt FACTOR 6
40: .Os
41: .Sh NAME
1.9 jsm 42: .Nm factor
43: .Nd factor a number
1.3 jtc 44: .Sh SYNOPSIS
1.5 lukem 45: .Nm
1.15 christos 46: .Op Fl hx
1.3 jtc 47: .Op Ar number ...
48: .Sh DESCRIPTION
1.1 cgd 49: The
1.5 lukem 50: .Nm
1.18 ! christos 51: utility factors integers larger than
! 52: .Dv 0 .
1.6 wiz 53: When a number is factored, it is printed, followed by a
1.7 wiz 54: .Dq \&: ,
1.10 dholland 55: and the list of
56: .Pq prime
57: factors on a single line.
1.1 cgd 58: Factors are listed in ascending order, and are preceded by a space.
1.14 rin 59: By default, if a factor divides a value more than once, it will be
60: printed more than once.
1.3 jtc 61: .Pp
1.1 cgd 62: When
1.5 lukem 63: .Nm
1.14 rin 64: is invoked with one or more
65: .Ar number
66: arguments, each argument will be factored.
1.3 jtc 67: .Pp
1.1 cgd 68: When
1.5 lukem 69: .Nm
1.14 rin 70: is invoked with no
71: .Ar number
72: arguments,
1.5 lukem 73: .Nm
1.1 cgd 74: reads numbers, one per line, from standard input, until end of file or error.
75: Leading white-space and empty lines are ignored.
1.12 joerg 76: Numbers may be preceded by a single +.
1.17 christos 77: Numbers that start with
78: .Dv 0x
79: are interpreted as hexadecimal.
1.18 ! christos 80: A
! 81: .Dv 0
! 82: input exits the program.
! 83: Negative numbers are not allowed.
1.1 cgd 84: Numbers are terminated by a non-digit character (such as a newline).
85: After a number is read, it is factored.
1.10 dholland 86: Input lines must not be longer than
1.11 wiz 87: .Dv LINE_MAX \- 1
1.10 dholland 88: (currently 2047) characters.
89: .Pp
90: By default,
91: .Nm
92: is compiled against the OpenSSL bignum implementation
93: .Xr openssl_bn 3 ,
94: which lets it handle arbitrarily large values.
95: .Pq Note however that very large values can take a very long time to factor.
96: If
97: .Nm
98: is compiled without OpenSSL it is limited to the maximum value of
99: .Vt unsigned long .
1.14 rin 100: .Pp
101: The following option is available:
102: .Bl -tag -width flag
103: .It Fl h
104: If the
105: .Fl h
106: flag is specified, factors will be printed in "human-readable" format.
107: If a factor x divides a value n (>1) times, it will appear as x^n.
1.15 christos 108: .It Fl x
109: If the
110: .Fl x
1.16 kre 111: flag is specified, factors will be printed in hexadecimal format.
1.14 rin 112: .El
1.3 jtc 113: .Sh DIAGNOSTICS
1.6 wiz 114: Out of range or invalid input results in
1.13 ast 115: an appropriate error message to standard error.
116: .Sh AUTHORS
117: Originally by
118: .An Landon Curt Noll .
CVSweb <webmaster@jp.NetBSD.org>