GNU factor命令有实际用途吗?


17

浏览GNU Coreutils时,我发现了factor以前从未注意到的命令。

阅读手册页:

打印每个指定整数NUMBER的质因子。如果在命令行上未指定任何内容,请从标准输入中读取它们。

是否有实际用途factor,还是只是一个演示/玩具包?

Answers:


17

维基百科,“ Factor(Unix)”,有趣的是:

factor于1974年作为“用户维护”实用程序首次出现在第5版Unix研究上(手册第6节)。在1979年的第7版中,它被移至手册的主要“命令”部分(第1节)。从那里,factor实用程序被复制到Unix的所有其他变体中,包括商业Unix和BSD。在Unix的某些变体中,它被归类为“游戏”,而不是严肃的实用程序,因此在第6节中进行了介绍。

因此,似乎有些用户喜欢玩素因子并编写因子-并且一旦存在,就没有充分的理由不将其作为后续Unix版本的命令包含在内。因此,因子的“实际用途”可能取决于您认为实用的内容-如果您是素数理论的用户,那么它可能是一个很棒的工具/游戏/无论如何。


6

我知道至少在一种情况下,对我来说factor有助于分析未知格式的大型数据文件。

如果您怀疑文件具有固定长度的记录,则文件长度的主要因素为确定实际记录长度提供了一个起点。


4

它会告诉您可以将哪些质数相乘以得到您指定的数字:

例如 20 = 2 * 2 * 5

所以,

> factor 20

你得到20: 2 2 5的输出

如果数字是质数,例如19,则只会得到一个19


谢谢,我有点从手册页中得到了。我很好奇您为什么要在Shell脚本或类似脚本中执行此操作。人们实际上多久需要素根?我更新了问题,使之更清楚。
加文·布洛克


2

这可能是UNIX早期的一个实用程序,在科学计算器便宜,小巧且功能丰富之前,它就已经诞生了。

它可能有助于原始UNIX的开发人员证明整个事情可以做些有用的事情,并且应该继续获得资金。


1
尽管它纯粹是计算性的,但它没有展示Unix的任何功能。
斯特凡Chazelas

2
在Unix的早期,roff排版机是为了满足Unix的资金需求而开发的。
库萨兰达

0

质数在密码学中起着很大的作用,尽管我对此了解甚少,但我想知道它们可能会发现它对于识别大质数等有用。


5
factor限于适合无符号整数的数字。最好的情况是64位(≤18,446,744,073,709,551,615),但是您在RSA中合理使用的最小数字是2048位。亲爱的,那远远超出了因素的处理能力。实际上,它是如此之大,以至于要写出多少倍超出注释的最大长度。这几乎是600位长(这是2¹⁹⁸⁴如果你想自己用如计算的话,bc
derobert

所以今天没有用,但也许是35年前了?那么密码学是否使用了具有高熵的密钥?只是认为这可能是它存在的可能原因。
德雷克·克拉里斯(Decke Clarris)2012年

否。如果factor 可以计算数量(不进行很多年的修改),那么它对于密码术就毫无用处。此外,我敢打赌因子使用相对较慢的算法...
derobert 2012年

1
告诉我,我对密码学知之甚少。哈哈
德雷克·克拉里斯2012年

3
@derobert至少我机器上的版本(8.25)使用libgmp并可以分解非常大的数字: 184467440737095516150000000000001: 19 37 227601536870423 1152893543912729
Viktor Dahl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.