## NAME

factor, primes — factor a number, generate large primes

## SYNOPSIS

`factor`
[`number`]

`primes`
[`start`[`stop`]]

## DESCRIPTION

If no arguments are provided on the command line,
`factor`
waits for a number to be typed in.
If a positive number is typed,
it factors the number and print its prime factors;
each one is printed the proper number of times.
It then waits for another number.
`factor`
exits if it encounters a zero or any non-numeric character.

If an argument is provided on the command line,
`factor`
factors the number as above, then exits.

Maximum time to factor is proportional to
sqrt(`n`)
and occurs when
`n`
is prime or the square of a prime.

The largest number that can be dealt with by
`factor`
is 1.0e14.

`primes`
prints prime numbers between a lower and upper bound.
If no arguments are provided on the command line,
`primes`
waits for two numbers to be typed in.
The first number is interpreted as the lower bound;
the second as the upper bound.
All prime numbers in the resulting inclusive range are printed.

If
`start`
is specified, all primes greater than or equal to
`start`
are printed.
If both
`start`
and
`stop`
are given, all primes occurring in the inclusive range
`start`
through
`stop`
are printed.

`start`
and
`stop`
values must be integers represented as long integers.

If the stop value is omitted in either case,
`primes`
runs either until overflow occurs or until it is
stopped by typing the interrupt character.

The largest number that can be dealt with by
`primes`
is 2,147,483,647.

## DIAGNOSTICS

Both commands print
`Ouch`
when the input is out of range,
illegal characters are encountered, or when
`start`
is greater than
`stop`.

## EXAMPLES

Print the prime factorization for the number 12:

Print all prime numbers between 0 and 20: