初学者的Linux factor命令(带有示例)
如果您是Linux命令行用户,并且您的工作围绕质数进行,那么有一个命令行实用程序可以为您提供帮助,该工具 因子… 在本文中,我们将快速讨论诸如它为什么存在,它如何工作以及如何使用它的事情。 请注意,此处提到的所有示例和说明均已在Ubuntu 16.04 LTS上进行了测试。
Linux factor命令
Linux factor命令给出了数的质数。 这是该工具的语法:
factor [NUMBER]...
以下是手册页描述实用程序的方式:
Print the prime factors of each specified integer NUMBER. If none are specified on the command line, read them from standard input.
Q1。 如何使用factor命令?
使用非常简单(通过上述语法,您猜对了)。 只需提供所需的数字作为factor实用程序的参数即可。 例如,要找到主要因子(例如20),请使用以下因子:
factor 20
以下是在系统上产生的结果:
[email protected]:~# factor 20 20: 2 2 5
当然,您可以一次性将多个数字作为参数传递给factor命令。
[email protected]:~#factor 20 30 40 20: 2 2 5 30: 2 3 5 40: 2 2 2 5
除常规参数外,该工具没有其他任何基本命令行参数。 -救命 和 -版几乎每个Linux命令行工具都具有。
[email protected]:~# factor --help Usage: factor [NUMBER]... or: factor OPTION Print the prime factors of each specified integer NUMBER. If none are specified on the command line, read them from standard input. --help display this help and exit --version output version information and exit GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Full documentation at: <http://www.gnu.org/software/coreutils/factor> or available locally via: info '(coreutils) factor invocation'
Q2。 因素使用什么算法?
根据GNU文档,factor命令使用算法 波拉德·布伦特·罗… 文档(看这里)还提供了仅针对系数相对较小的数字的有效算法。 以下是文档摘录:
从文档中:分解因子通常很困难。 因数使用的Pollard-Brent rho算法对于阶乘相对较小的数字特别有效。 如果要考虑没有小阶乘的大量数字(例如,一个数字是两个大质数的乘积),则其他方法会更好。 如果在不使用GNU MP的情况下构建因数,则只能使用单精度算术,因此将不支持大数(通常为2 ^ {128}及以上)。 单精度代码使用一种旨在分解较小数字的算法。
Q3。 为什么因素存在?
好吧,这还没有官方的说法,但是专家建议有人(或一组)处理质数并在半个世纪前开发出该工具。 从那时起,它已被包括在Unix和Linux发行版中,这可以归因于没有任何理由。
可以找到关于该主题的讨论 这里…
结论
factor命令显然是一个利基工具。 只有那些经常使用质数/因数的人可能会发现它有用。 但是话又说回来,学习效用绝对没有害处(特别是在几乎没有与之相关的学习曲线时)。
您可以访问因子的手册页 这里…