Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Looking through the GNU Coreutils, I spotted the factor command, that I had never noticed before.

Reading the man page:

Print the prime factors of each specified integer NUMBER. If none are specified on the command line, read them from standard input.

Is there a practical use for factor, or is it just a demonstration / toy package?

share|improve this question

migrated from serverfault.com Sep 5 '12 at 1:59

This question came from our site for system and network administrators.

up vote 13 down vote accepted

Wikipedia, "Factor (Unix)" with an interesting take:

factor first appeared on 5th edition Research Unix in 1974, as a "user maintained" utility (section 6 of the manual). In the 7th edition in 1979, it was moved into the main "commands" section of the manual (section 1). From there, the factor utility was copied to all other variants of Unix, including commercial Unixes and BSD. In some variants of Unix, it is classified as a "game" more than a serious utility, and therefore documented in section 6.

So it would seem that some user(s) liked to play around with prime factors and wrote factor - and once it existed, there probably was no good reason not to include it as a command in subsequent Unix versions. So the "practical uses" of factor may depend on what you consider practical - if you are into prime number theory, it is probably a great tool/game/whatever.

share|improve this answer

It will tell you what prime numbers can be multiplied together to get the number you've specified:

e.g 20 = 2 * 2 * 5


> factor 20

You get 20: 2 2 5 as output

If the number was a prime, e.g 19, you will get a 19 only.

share|improve this answer
Thanks, I kind of got this from the man page. I was more curious why you would want to do this in a shell script, or similar. How often do people actually need prime roots? I updated the question to be clearer. – Gavin Brock Sep 5 '12 at 2:24

This may be an utility descended from the early days of UNIX, before scientific calculators were cheap, small, and plentiful.

It may have served to allow the developers of the original UNIX to show that the whole thing could do something useful and that it should keep receiving funding.

share|improve this answer
It demonstrates none of the features of Unix though as it's purely computational. – Stéphane Chazelas Dec 10 '12 at 20:13

Prime numbers play a large role in cryptography, although I know very little about it, I could fathom that they may find it useful for identifying large primes and the like

share|improve this answer
factor is limited to numbers that fit into an unsigned integer. Best case, that's 64 bits (≤ 18,446,744,073,709,551,615)—but the smallest number you'd reasonably use in e.g., RSA is 2048 bits. IOW, That's much larger than factor can handle. In fact its so much larger, that writing out how many times larger exceeds the maximum length of a comment. It's almost 600 digits long (it's 2¹⁹⁸⁴ if you want to calculate it yourself with e.g., bc) – derobert Dec 10 '12 at 20:06
So not useful today, but maybe 35 years ago? Was cryptography using keys with that high of entropy then? Just thought it might be a possible reason it exists. – Drake Clarris Dec 10 '12 at 21:25
No. If factor can factor the number (without chugging for many, many years on it), then it is useless for cryptography. Also, I bet factor uses a relatively slow algorithm... – derobert Dec 10 '12 at 21:30
Told ya I know very little about cryptography. haha – Drake Clarris Dec 10 '12 at 21:46
@derobert at least the version on my machine (8.25) uses libgmp and can factor very large numbers: 184467440737095516150000000000001: 19 37 227601536870423 1152893543912729 – Viktor Dahl Apr 26 at 19:06

Most tools are useful to someone. Here's a question from someone who wants to use factor to help divide up a large file into optimally-sized chunks.

Find a "moderately large" divisor of a given number?

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.