Это команда ecm, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
ecm - целочисленная факторизация с использованием ECM, P-1 или P + 1
СИНТАКСИС
ЕСМ [кредита] B1 [B2min-Б2макс | B2]
ОПИСАНИЕ
ecm - это программа с целочисленным факторингом, использующая метод эллиптических кривых (ECM), метод P-1,
или методом P + 1. В следующих разделах описаны параметры, относящиеся к этим
алгоритмы.
ШАГ 1 И ШАГ 2 BOUND ПАРАМЕТРЫ
B1
B1 - граница шага 1. Это обязательный параметр. Может быть задано целым числом
формате (например 3000000) или в формате с плавающей запятой (3000000.0 или 3e6). В
максимально возможный B1 значение 9007199254740996 для P-1 и ULONG_MAX или
9007199254740996 (в зависимости от того, что меньше) для ECM и P + 1. Все простые числа 2 <= p <= B1
обрабатывается на шаге 1.
B2
B2 - граница шага 2. Это необязательно: если не указано, значение по умолчанию вычисляется из
B1, что должно быть близко к оптимальному. Нравиться B1, он может быть целым или
формат с плавающей запятой. Максимально возможное значение B2 примерно 9e23, но
зависит от количества блоков k если вы укажете -k вариант. Все простые числа B1 <= p <=
B2 обрабатываются на шаге 2. Если B2 < B1, шаг 2 не выполняется.
B2min-Б2макс
в качестве альтернативы можно использовать B2min-Б2макс форма, что означает, что все простые числа B2min <= p
<= Б2макс должны быть обработаны. Таким образом, указав B2 только соответствует B1-B2, Ценности
of B2min и Б2макс могут быть сколь угодно большими, но их разница не должна превышать
примерно 9e23, в зависимости от количества блоков k.
ФАКТОРИНГ МЕТОД
-pm1
Выполните P-1 вместо метода по умолчанию (ECM).
-pp1
Выполните P + 1 вместо метода по умолчанию (ECM).
GROUP И ИСХОДНЫЙ ТОЧКА ПАРАМЕТРЫ
-x0 x
[ECM, P-1, P + 1] Использование x (целое или рациональное число произвольной точности) в качестве начальной точки. Для
пример, -x0 1/3 является действительным. Если не указано, x генерируется из значения сигмы для ECM,
или произвольно для P-1 и P + 1.
-сигма s
[ECM] Использование s (целое число произвольной точности) в качестве генератора кривых. Если опущено, s is
генерируется случайным образом.
-A a
[ECM] Использование a (целое число произвольной точности) как параметр кривой. Если опущено, это
генерируется из значения сигмы.
-идти волна
[ECM, P-1, P + 1] Умножьте начальную точку на волна, которое может быть любым допустимым выражением,
возможно, содержащий специальный символ N в качестве заполнителя для текущего ввода
количество. Пример:
ecm -pp1 -go "N ^ 2-1" 1e6 <композит2000
ШАГ 2 ПАРАМЕТРЫ
-k k
[ECM, P-1, P + 1] Выполнить k блоков на шаге 2. Для заданного B2 значение, увеличивающееся k
уменьшает использование памяти на шаге 2 за счет увеличения времени процессора.
-деревофайл файл
Сохраняет некоторые таблицы данных в дисковых файлах, чтобы уменьшить объем памяти, занимаемой в
шаг 2 за счет дискового ввода-вывода. Данные будут записаны в файлы файл.1, файл.2 и т. Д.
Не работает с быстрой стадией 2 для P + 1 и P-1.
-мощность n
[ECM, P-1] Используйте x ^n для расширения Брент-Суямы (-мощность 1 отключает Брент-Суяму
расширение). Полином по умолчанию выбирается в зависимости от метода и B2. Для P-1
и P + 1, отключает быструю ступень 2. Для P-1, n должно быть даже.
Диксон n
[ECM, P-1] Степень использования-n Полином Диксона для расширения Брента-Суямы. Для P-1 и
P + 1, отключает быструю ступень 2. Как для -мощность, n должно быть даже для Р-1.
-максмем n
Используйте не более n мегабайты памяти на этапе 2.
-нт, -но-нтт
Включение или отключение кода теоретико-числового преобразования для полиномиальной арифметики в
стадия 2. В NTT dF выбирается равным степени 2 и ограничивается числом
подходящие простые числа, которые помещаются в машинное слово (что является ограничением только для 32-битных
системы). Вариант -no-ntt использует больше памяти, но быстрее, чем NTT с большими
вводить числа. По умолчанию NTT используется для P-1, P + 1 и для ECM для чисел размера в
самое 30 машинных слов.
ВЫВОД
-q
Тихий режим. Найденные факторизации выводятся на стандартный вывод с коэффициентами
разделенные пробелами, по одной строке на входной номер (если фактор не найден,
номер ввода просто копируется).
-v
Подробный режим. Больше информации печатается, больше -v опции увеличивают многословие. С участием
one -v, тип используемого модульного умножения, начальное значение x0, параметры шага 2
и прогресс, и ожидаемые кривые и время, чтобы найти факторы разного размера для ECM
печатаются. С участием -v -v, значение A для ECM и остатков в конце шага 1 и
шаг 2 распечатаны. Более -v распечатать внутренние данные для отладки.
-метка времени
Печатайте отметку времени всякий раз, когда обрабатывается новая кривая ECM или прогон P + 1 или P-1.
MODULAR АРИФМЕТИЧЕСКИЙ ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Для модульного умножения доступно несколько алгоритмов. Программа пытается найти
лучший для каждого входа; можно принудительно использовать данный метод с помощью следующих параметров.
-mpzmod
Используйте функцию mpz_mod GMP (субквадратичная для больших входных данных, но вызывает некоторые накладные расходы
для маленьких).
-модмульн
Используйте умножение Монтгомери (квадратичный вариант). Обычно лучший метод для маленьких
вход.
-редк
Используйте умножение Монтгомери (субквадратичный вариант). Теоретически оптимально для
большой ввод.
-нобаза2
Отключить специальный код base-2 (который используется, когда входное число является большим фактором
2 ^ n + 1 или 2 ^ n-1, см. -v).
-база2 n
Принудительное использование специального кода base-2, вводимое число должно делиться на 2 ^n+1 если n > 0 или 2 ^ |n| -1
if n <0.
ФАЙЛОВ Ввода / вывода
Следующие параметры позволяют выполнять шаги 1 и 2 отдельно, либо на
на разных машинах, в разное время или с использованием разного программного обеспечения (в частности, Джордж
Программа Woltman Prime95 / mprime может создавать выходные данные шага 1, подходящие для возобновления с помощью
GMP-ECM). Также может быть полезно разделить шаг 2 на несколько прогонов, используя B2мин-B2макс
опцию.
-вход файл
Принимать ввод из файла файл вместо стандартного ввода.
-спасти файл
Сохраните результат шага 1 в файл. Если файл существует, возникает ошибка. Пример: выполнить
только шаг 1 с B1= 1000000 на составное число в файле "c155" и сохраните его
результат в файле "foo", используйте
ecm -save foo 1e6 1 <c155
-Савея файл
Подобно -спасти, но добавляется к существующим файлам.
-резюме файл
Резюме остатки от файл, читает из стандартного ввода, если файл является "-". Пример: чтобы
выполните шаг 2 после вычисления шага 1 выше, используйте
ecm -резюме foo 1e6
-контрольная точка файл
Периодически записывайте текущий остаток на этапе 1 в файл. В случае сбоя питания,
и т. д., расчет можно продолжить с помощью -резюме опцию.
ecm -chkpnt foo -pm1 1e10 <largenumber.txt
LOOP РЕЖИМ
«Режим петли» (опция -c n) позволяет запускать несколько кривых для каждого номера входа. В
следующие параметры управляют его поведением.
-c n
Выполнять n запускается для каждого номера ввода (по умолчанию - один). Эта опция в основном полезна для
P + 1 (например, с n= 3) или для ECM, где n можно установить на ожидаемое количество
кривые, чтобы найти коэффициент из d цифр с заданной границей шага 1. Этот вариант несовместим
-продолжить, -сигма, -x0, дающий -c 0 производит бесконечный цикл до тех пор, пока коэффициент не станет
найдено.
-один
В режиме цикла остановитесь, когда фактор найден; по умолчанию будет продолжаться до тех пор, пока
кофактор является простым или выполняется указанное количество прогонов.
-b
Обработка в ширину: в режиме цикла запустите одну кривую для каждого номера входа, затем
вторая кривая для каждого и так далее. Это режим по умолчанию с -вход.
-d
Обработка в глубину: в режиме цикла, запустить n кривые для первого числа, затем n Кривые
для второго и так далее. Это режим по умолчанию со стандартным вводом.
-ве n
В режиме цикла во втором и последующих прогонах выводить только выражения, которые имеют
самых n символы. По умолчанию -ве 0.
-i n
В режиме цикла увеличивайте B1 by n после каждой кривой.
-I n
В режиме цикла умножьте B1 на фактор, зависящий от n после каждой кривой. По умолчанию один
что должно быть оптимальным на одной машине, в то время как -I 10 может быть использован при попытке
разложите одно и то же число одновременно на 10 идентичных машинах.
SHELL КОМАНДА ИСПОЛНЕНИЕ
Эти опции позволяют выполнять команды оболочки для дополнения функциональности GMP-ECM.
-prcmd CMD
Выполнить команду CMD для проверки простоты, если факторы и кофакторы вместо GMP-ECM
собственные функции. Число для проверки передается через стандартный ввод. Код выхода 0
интерпретируется как «вероятно простое», а ненулевой код выхода - как «составной».
-faccmd CMD
Выполняет команду CMD всякий раз, когда фактор обнаруживается P-1, P + 1 или ECM. Номер входа,
Фактор и кофактор передаются через стандартный ввод, каждый в строке. Это может быть использовано, например, для
отправка новых факторов автоматически:
ecm -faccmd 'mail -s «$ HOSTNAME обнаружил фактор»
[электронная почта защищена]'11e6 <cunningham.in
-idlecmd CMD
Выполняет команду CMD перед каждой кривой ECM запускается попытка P-1 или P + 1 для номера.
Если статус выхода CMD не равно нулю, GMP-ECM завершается немедленно, в противном случае
продолжается нормально. GMP-ECM останавливается, пока CMD бежит, предлагая способ позволить
GMP-ECM спит, например, когда система в остальном занята.
РАЗНОЕ
-n
Запустите программу в «приятном» режиме (приоритет ниже нормального).
-нн
Запустить программу в «очень хорошем» режиме (приоритет простоя).
-B2шкала f
Умножьте границу шага 2 по умолчанию B2 по значению с плавающей запятой f, Пример: -B2шкала
0.5 делит значение по умолчанию B2 по 2.
-стадия1время n
Добавить n секунд до этапа 1 раз. Это полезно для получения правильного ожидаемого времени с помощью -v if
часть этапа 1 была выполнена в другом прогоне.
-кофдек
Принудительный вывод кофактора в десятичном формате (даже если используются выражения).
-h, --Помогите
Отобразите краткое описание использования, параметров и параметров командной строки ecm.
-printconfig
Печатает параметры конфигурации, используемые для компиляции, и завершает работу.
ВХОД СИНТАКСИС
Входные числа могут иметь несколько форм:
Необработанные десятичные числа, например 123456789.
В файл можно помещать комментарии: все после «//» игнорируется до конца
линии.
Продолжение линии. Если строка заканчивается символом обратной косой черты «\», считается, что
продолжить на следующей строке.
Могут использоваться общие арифметические выражения. Пример: 3 * 5 + 2 ^ 10.
Факториал: пример 53!.
Многофакторный: пример 15! 3 means 15*12*9*6*3.
Primorial: пример 11 # means 2*3*5*7*11.
Приведенный примориал: пример 17 # 5 means 5*7*11*13*17.
Функции: в настоящее время единственная доступная функция Фи (х, п).
ВЫХОД статус
Статус выхода отражает результат последней кривой ECM или P-1 / P + 1 попытки выполнения программы.
выполненный. Отдельные биты обозначают определенные события, а именно:
Бит 0
0 при нормальном завершении программы, 1 при возникновении ошибки
Бит 1
0, если подходящий фактор не найден, 1 в противном случае
Бит 2
0, если множитель составной, 1, если множитель - вероятное простое число
Бит 3
0, если сомножитель составной, 1, если сомножитель является вероятным простым числом
Таким образом, могут возникнуть следующие значения статуса выхода:
0
Нормальное завершение программы, фактор не найден
1
Ошибка
2
Обнаружен составной фактор, сомножитель составной
6
Найден вероятный простой множитель, сомножитель составной
8
Найден входной номер
10
Обнаружен составной множитель, сомножитель - вероятное простое число
14
Найден вероятный простой множитель, сомножитель - вероятное простое число
Используйте ecm онлайн с помощью сервисов onworks.net