Фактор является слишком большим

Бормотание, можно просто заменить apt-get с вашим сценарием.

Переместиться apt-get кому: real-apt-get и, затем, создайте названный сценарий apt-get как этот:

#!/bin/sh

mount -o remount -o ... /tmp
real-apt-get "$@"
mount -o remount -o ... -o noexec /tmp

В любом случае мне не нравится это решение. Это - более легкое изменение временная переменная среды каталога при необходимости в нем. Что-то как (sh стиль):

mkdir /root/mytmp
TMPDIR=/root/mytmp
export TMPDIR
apt-get ...
rm -rf /root/mytmp

Этот склонный путь - добирается, будет использовать /root/mytmp как временный dir. Никакая потребность изменить систему.

5
09.07.2014, 19:30
2 ответа
[

] Может быть, ваш [] фактор [] не построен с [] GMP [], поэтому он не может обрабатывать числа больше []2**64-1 []: [

] [
$ factor 18446744073709551616
factor: `18446744073709551616' is too large
$ factor 18446744073709551615
18446744073709551615: 3 5 17 257 641 65537 6700417
] [

] Выполните эту команду, чтобы проверить, построен ли [] фактор [] с [] GMP []: [

] [
$ ldd /usr/bin/factor 
        linux-vdso.so.1 (0x00007fffda1fe000)
        libgmp.so.10 => /usr/lib64/libgmp.so.10 (0x00007faae00f5000)
        libc.so.6 => /lib64/libc.so.6 (0x00007faadfd46000)
        /lib64/ld-linux-x86-64.so.2 (0x00007faae037c000)
] [

]Предел может быть выше на некоторых машинах (число должно соответствовать типу []uintmax_t[]), но ваш номер - 256-битное число, и ни одна общая машина не поддерживает такой большой []uintmax_t[], если таковой имеется. [

] [

] Обратите внимание, что утилита []factor[] может быть скомпилирована с поддержкой []GMP[]. В этом случае, фактически, нет ограничений на размер числа. Похоже, что в вашем дистрибутиве не активирована поддержка GMP (что имеет смысл, т.к. для редко используемой функции в системный пакет ядра будет добавлена зависимость от дополнительной библиотеки)[

] [

]Если у вас есть []perl[], то вы можете попробовать []factor. pl[] включено в модуль []Math::Prime::Util[]:[

] [
$ /home/cuonglm/.cpan/build/Math-Prime-Util-0.31-9c_xq3/bin/factor.pl 115792089237316195423570985008687907852837564279074904382605163141518161494337
115792089237316195423570985008687907852837564279074904382605163141518161494337: 115792089237316195423570985008687907852837564279074904382605163141518161494337
]
5
27.01.2020, 20:35
[

] Также можно использовать [] фактор [] из коредутилей. Однако он должен быть скомпилирован с поддержкой бинума. FYI, это не относится к бинарному варианту, который поставляется с некоторыми дистрибутивами, такими как Debian ([]bug 608832[]). Но вы можете скачать исходный текст и перекомпилировать его после установки GMP (который используется по умолчанию, если найден).[

] [

]Другое решение - использовать Pari/GP (хорошо известный для теории чисел):[

] [
? factor(806578020551755900412008880903137528217525975284037923)
%1 =
[ 238366085426200783161668947 1]

[3383778439410064898661524209 1]
] [

]С этим числом это занимает несколько секунд.[

].
5
27.01.2020, 20:35

Теги

Похожие вопросы