Если вы пользователь командной строки в Linux, и ваша работа вращается вокруг простых чисел, есть утилита командной строки, которая может помочь вам, инструмент factor. В этой статье мы быстро обсудим такие вещи, как, почему она существует, как она работает, и как вы можете использовать ее. Пожалуйста, обратите внимание, что все примеры и инструкции, упомянутые здесь, были протестированы на Ubuntu 16.04 LTS.
Команда factor в Linux
Команда factor в Linux дает простые множители числа. Вот синтаксис инструмента:
factor [NUMBER]...
А вот как man page описывает утилиту:
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 следующим образом:
factor 20
Ниже приведен результат, который был произведен в системе:
root@destroyer:~# factor 20 20: 2 2 5
Конечно, вы можете передать несколько чисел в качестве аргумента команды factor на одном дыхании.
root@destroyer:~#factor 20 30 40 20: 2 2 5 30: 2 3 5 40: 2 2 2 5
У инструмента нет каких – либо других основных параметров командной строки, за исключением регулярного –help и –version, которые есть почти у каждого инструмента командной строки в Linux.
root@destroyer:~# 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. Какой алгоритм использует factor?
Согласно документации GNU, команда factor использует алгоритм Pollard-Brent rho. Документация (смотрите здесь), также предлагает эффективный алгоритм только для чисел с относительно малыми коэффициентами. Вот выдержка из документации:
Q3. Почему factor существует?
Ну, нет никакого официального слова об этом, но эксперты предполагают, кто-то (или группа) имели дело с простыми числами и разработали инструмент гдето полвека назад. И тот факт, что с тех пор он был включен в дистрибутивы Unix и Linux можно отнести отсутствие каких-либо причин не делать этого.
С дискуссией по этой теме можно ознакомиться здесь.
Вывод
Очевидно, что команда factor является инструментом ниши. Только те, которые часто используют простые числа/факторы могли бы найти ее полезным. Но опять же, нет абсолютно никакого вреда, чтобы узнать о полезности (особенно, когда практически нет кривой обучения, связанной с ней).
Вы можете получить доступ к справочной странице factorа здесь.