Jest to polecenie ecm, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS
PROGRAM:
IMIĘ
ecm - faktoryzacja liczb całkowitych za pomocą ECM, P-1 lub P+1
STRESZCZENIE
ecm [Opcje] B1 [B2 min-B2maks | B2]
OPIS
ecm to program do faktoryzacji liczb całkowitych wykorzystujący metodę krzywej eliptycznej (ECM), metodę P-1,
lub metoda P+1. Poniższe sekcje opisują parametry odnoszące się do nich
algorytmy.
KROK 1 ROLNICZE KROK 2 UWIĄZANY PARAMETRY
B1
B1 jest ograniczeniem kroku 1. Jest to parametr obowiązkowy. Może być podany w liczbach całkowitych
(na przykład 3000000) lub w formacie zmiennoprzecinkowym (3000000.0 lub 3e6). ten
największy możliwy B1 wartość to 9007199254740996 dla P-1 i ULONG_MAX lub
9007199254740996 (w zależności od tego, która wartość jest mniejsza) dla ECM i P+1. Wszystkie liczby pierwsze 2 <= p <= B1 jest
przetwarzane w kroku 1.
B2
B2 jest związany z krokiem 2. Jest to opcjonalne: jeśli pominięte, domyślna wartość jest obliczana z
B1, który powinien być zbliżony do optymalnego. Lubić B1, może być podana w liczbach całkowitych lub w
format zmiennoprzecinkowy. Największa możliwa wartość B2 wynosi około 9e23, ale
zależy od liczby bloków k jeśli określisz -k opcja. Wszystkie liczby pierwsze B1 <= p <=
B2 są przetwarzane w kroku 2. Jeśli B2 < B1, krok 2 nie jest wykonywany.
B2 min-B2maks
alternatywnie można użyć B2 min-B2maks forma, co oznacza, że wszystkie liczby pierwsze B2 min <= p
<= B2maks powinny zostać przetworzone. W ten sposób określając B2 odpowiada tylko B1-B2. Wartości
of B2 min i B2maks mogą być dowolnie duże, ale ich różnica nie może przekraczać
około 9e23, w zależności od liczby bloków k.
FAKTOROWANIE SPOSÓB
-pm1
Wykonaj P-1 zamiast metody domyślnej (ECM).
-pp1
Wykonaj P+1 zamiast metody domyślnej (ECM).
GROUP ROLNICZE INICJAŁ PUNKTY PARAMETRY
-x0 x
[ECM, P-1, P+1] Użyj x (liczba całkowita o dowolnej precyzji lub wymierna) jako punkt początkowy. Do
przykład, -x0 1/3 jest ważna. Jeśli nie podano, x jest generowany z wartości sigma dla ECM,
lub losowo dla P-1 i P+1.
-sigma s
[ECM] Użyj s (liczba całkowita o dowolnej precyzji) jako generator krzywych. Jeśli pominięto, s is
generowane losowo.
-A a
[ECM] Użyj a (liczba całkowita o dowolnej precyzji) jako parametr krzywej. Jeśli jest pominięty, czy to?
generowane z wartości sigma.
-udać się val
[ECM, P-1, P+1] Pomnóż początkowy punkt przez val, który może być dowolnym poprawnym wyrażeniem,
prawdopodobnie zawierający znak specjalny N jako symbol zastępczy dla bieżącego wejścia
numer. Przykład:
ecm -pp1 -go "N^2-1" 1e6 < composite2000
KROK 2 PARAMETRY
-k k
[ECM, P-1, P+1] Wykonaj k bloki w kroku 2. Dla danego B2 wartość, rosnąca k
zmniejsza zużycie pamięci w kroku 2, kosztem więcej czasu procesora.
-plik drzewa filet
Przechowuje niektóre tabele danych w plikach dyskowych, aby zmniejszyć ilość zajmowanej pamięci w
krok 2, kosztem dysku I/O. Dane zostaną zapisane do plików filet.1, filet.2 itd.
Nie działa z szybkim etapem 2 dla P+1 i P-1.
-Power n
[ECM, P-1] Użyj x^n dla rozszerzenia Brent-Suyama (-Power 1 wyłącza Brent-Suyama
rozbudowa). Domyślny wielomian jest wybierany w zależności od metody i B2. Dla P-1
i P+1, wyłącza szybki stopień 2. Dla P-1, n musi być równa.
Dickson n
[ECM, P-1] Stosować stopień-n Wielomian Dicksona dla rozszerzenia Brenta-Suyamy. Dla P-1 i
P+1, wyłącza szybki stopień 2. Jak dla -Power, n musi być równy dla P-1.
-maksymalna pamięć n
Użyj co najwyżej n megabajtów pamięci w etapie 2.
-nt, -nie-ntt
Włącz lub wyłącz kod przekształcenia teoretycznego liczb dla arytmetyki wielomianowej w
etap 2. W przypadku NTT dF jest wybierane jako potęga 2 i jest ograniczone liczbą
odpowiednie liczby pierwsze, które mieszczą się w słowie maszynowym (co jest ograniczeniem tylko dla 32 bitów
systemy). Wariant -no-ntt zużywa więcej pamięci, ale jest szybszy niż NTT z dużym
wprowadź liczby. Domyślnie NTT jest używany dla P-1, P+1 i dla ECM dla liczb o rozmiarze przy
większość 30 maszynowych słów.
WYDAJNOŚĆ
-q
Tryb cichy. Znalezione faktoryzacji są drukowane na standardowym wyjściu, z czynnikami
oddzielone białymi spacjami, jeden wiersz na numer wejściowy (jeśli nie znaleziono współczynnika,
wprowadzony numer jest po prostu kopiowany).
-v
Tryb szczegółowy. Więcej informacji jest drukowanych, więcej -v opcje zwiększają szczegółowość. Z
pierwszej -v, rodzaj zastosowanego mnożenia modularnego, początkowa wartość x0, parametry kroku 2
i postęp oraz oczekiwane krzywe i czas na znalezienie czynników o różnych rozmiarach dla ECM
są drukowane. Z -v -v, wartość A dla ECM i pozostałości na końcu kroku 1 i
krok 2 są drukowane. Więcej -v drukuj dane wewnętrzne do debugowania.
-znak czasu
Drukuj znacznik czasu za każdym razem, gdy przetwarzana jest nowa krzywa ECM lub przebieg P+1 lub P-1.
MODUŁOWE ARYTMETYKA OPCJE
Dostępnych jest kilka algorytmów mnożenia modułowego. Program stara się znaleźć
najlepszy dla każdego wejścia; daną metodę można wymusić następującymi opcjami.
-mpzmod
Użyj funkcji mpz_mod GMP (podkwadratowa dla dużych danych wejściowych, ale powoduje pewne obciążenie)
dla małych).
-modul
Użyj mnożenia Montgomery'ego (wersja kwadratowa). Zwykle najlepsza metoda dla małych
wkład.
-redc
Użyj mnożenia Montgomery'ego (wersja pod-kwadratowa). Teoretycznie optymalny dla
duży wkład.
-nobaza2
Wyłącz specjalny kod base-2 (który jest używany, gdy liczba wejściowa jest dużym współczynnikiem)
2^n+1 lub 2^n-1, patrz -v).
-podstawa2 n
Wymuś użycie specjalnego kodu base-2, wprowadzana liczba musi dzielić 2^n+1 jeśli n > 0 lub 2^|n| -1
if n <0.
FILE I / O
Poniższe opcje umożliwiają wykonanie kroku 1 i kroku 2 oddzielnie, albo na
różnych maszynach, w różnym czasie lub przy użyciu innego oprogramowania (w szczególności George
Program Prime95/mprime firmy Woltman może wygenerować dane wyjściowe kroku 1 odpowiednie do wznowienia za pomocą
GMP-ECM). Przydatne może być również podzielenie kroku 2 na kilka przebiegów, używając B2min-B2maks
opcja.
-w p filet
Pobierz dane wejściowe z pliku filet zamiast ze standardowego wejścia.
-zapisać filet
Zapisz wynik kroku 1 w filet. Jeśli filet istnieje, zgłaszany jest błąd. Przykład: do wykonania
tylko krok 1 z B1=1000000 na numerze złożonym w pliku „c155” i zapisz jego
wynik w pliku "foo", użyj
ecm - zapisz foo 1e6 1 < c155
-Zapisz filet
Jak -zapisać, ale dołącza do istniejących plików.
-wznawianie filet
Wznów pozostałości z filet, czyta ze standardowego wejścia, jeśli filet jest "-". Przykład: do
wykonaj krok 2 po wykonaniu powyższych obliczeń kroku 1, użyj
ecm - wznów foo 1e6
-punkt kontrolny filet
Okresowo zapisuj aktualną pozostałość w etapie 1 do filet. W przypadku awarii zasilania,
itp., obliczenia można kontynuować za pomocą -wznawianie opcja.
ecm -chkpnt foo -pm1 1e10 < dużaliczba.txt
PĘTLA TRYB
„Tryb pętli” (opcja -c n) umożliwia wykonanie kilku krzywych na każdym numerze wejściowym. ten
następujące opcje kontrolują jego zachowanie.
-c n
wykonać n działa na każdym numerze wejściowym (domyślnie jeden). Ta opcja jest przydatna głównie dla:
P+1 (na przykład z n=3) lub dla ECM, gdzie n można ustawić na oczekiwaną liczbę
krzywe, aby znaleźć współczynnik d-cyfrowy z danym ograniczeniem kroku 1. Ta opcja jest niezgodna
w -wznawiać, -sigma, -x0. Dający -c 0 tworzy nieskończoną pętlę, aż współczynnik wynosi
znaleziono.
-jeden
W trybie pętli zatrzymaj się po znalezieniu czynnika; domyślnie kontynuuje się aż do
kofaktor jest liczbą pierwszą lub wykonano określoną liczbę przebiegów.
-b
Przetwarzanie wszerz: w trybie pętli uruchom jedną krzywą dla każdego numeru wejściowego, a następnie a
druga krzywa dla każdego i tak dalej. To jest domyślny tryb z -w p.
-d
Przetwarzanie na pierwszym miejscu: w trybie pętli, uruchom n krzywe dla pierwszej liczby, a następnie n Krzywe
dla drugiego i tak dalej. Jest to domyślny tryb ze standardowym wejściem.
-we n
W trybie pętli w drugim i kolejnych przebiegach wyprowadzaj tylko wyrażenia, które mają at
większość n postacie. Wartość domyślna to -we 0.
-i n
W trybie pętli przyrost B1 by n po każdym łuku.
-I n
W trybie pętli pomnóż B1 o współczynnik zależny od n po każdym łuku. Wartość domyślna to jeden
która powinna być optymalna na jednej maszynie, podczas gdy -I 10 może być użyty, gdy próbujesz
rozłożyć tę samą liczbę jednocześnie na 10 identycznych maszynach.
SHELL COMMAND WYKONANIE
Te opcje pozwalają na wykonywanie poleceń powłoki w celu uzupełnienia funkcjonalności GMP-ECM.
-prpcmd cmd
Wykonaj polecenie cmd do testowania pierwszości, jeśli czynniki i kofaktory zamiast GMP-ECM
własne funkcje. Numer do przetestowania jest przekazywany przez standardowe wejście. Kod wyjścia 0 to
interpretowany jako „prawdopodobnie pierwszy”, a niezerowy kod wyjścia jako „złożony”.
-faccmd cmd
Wykonuje polecenie cmd ilekroć czynnik zostanie znaleziony przez P-1, P+1 lub ECM. Numer wejściowy,
factor i cofactor są przekazywane przez standardowe wejście, każdy w linii. Można to wykorzystać np. do
wysyłaj automatycznie nowe czynniki:
ecm -faccmd 'mail -s “$HOSTNAME znalazł czynnik”
[email chroniony]' 11e6 < cunningham.in
-bezczynny cmd
Wykonuje polecenie cmd przed każdą krzywą ECM rozpoczyna się próba P-1 lub P+1 na liczbie.
Jeśli status wyjścia cmd jest niezerowe, GMP-ECM kończy się natychmiast, w przeciwnym razie
kontynuuje normalnie. GMP-ECM jest zatrzymany, gdy cmd biegi, oferując sposób na wynajem
GMP-ECM śpi na przykład, gdy system jest zajęty w inny sposób.
RÓŻNE
-n
Uruchom program w trybie „ładnym” (poniżej normalnego priorytetu).
-nn
Uruchom program w trybie „bardzo ładnym” (priorytet bezczynności).
-Skala B2 f
Pomnóż domyślną granicę kroku 2 B2 przez wartość zmiennoprzecinkową f, Przykład: -Skala B2
0.5 dzieli wartość domyślną B2 przez 2.
-etap1raz n
Dodaj n sekund do etapu 1 raz. Jest to przydatne, aby uzyskać prawidłowy oczekiwany czas z -v if
część etapu 1 została wykonana w innym biegu.
-kod
Wymuś wyjście kofaktora w postaci dziesiętnej (nawet jeśli używane są wyrażenia).
-h, --help
Wyświetl krótki opis użycia, parametrów i opcji wiersza poleceń ECM.
-drukujkonfigurację
Wyświetla parametry konfiguracyjne używane do kompilacji i wyjść.
WEJŚCIE SKŁADNIA
Liczby wejściowe mogą mieć kilka postaci:
Surowe liczby dziesiętne, takie jak 123456789.
Komentarze można umieszczać w pliku: wszystko po „//” jest ignorowane, aż do końca
Linia.
Kontynuacja linii. Jeśli linia kończy się znakiem odwrotnego ukośnika „\”, uważa się, że
kontynuuj w następnym wierszu.
Można użyć typowych wyrażeń arytmetycznych. Przykład: 3*5+2^10.
Silnia: przykład 53!.
Wieloczynnikowy: przykład 15 means 15*12*9*6*3.
Pierwotny: przykład 11 # means 2*3*5*7*11.
Zredukowany pierwotny: przykład 17 # 5 means 5*7*11*13*17.
Funkcje: obecnie jedyną dostępną funkcją jest Fi(x,n).
EXIT STATUS
Status wyjścia odzwierciedla wynik ostatniej krzywej ECM lub próby P-1/P+1 programu
wykonywane. Poszczególne bity oznaczają określone zdarzenia, a konkretnie:
bit 0
0 w przypadku normalnego zakończenia programu, 1 w przypadku wystąpienia błędu
bit 1
0 jeśli nie znaleziono właściwego współczynnika, 1 w przeciwnym razie
bit 2
0 jeśli czynnik jest złożony, 1 jeśli czynnik jest prawdopodobną liczbą pierwszą
bit 3
0 jeśli kofaktor jest złożony, 1 jeśli kofaktor jest prawdopodobną liczbą pierwszą
W związku z tym mogą wystąpić następujące wartości statusu wyjścia:
0
Normalne zakończenie programu, nie znaleziono czynnika
1
Błąd
2
Znaleziono czynnik złożony, kofaktor jest złożony
6
Znaleziono prawdopodobny czynnik główny, kofaktor jest złożony
8
Znaleziono numer wejściowy
10
Znaleziono czynnik złożony, kofaktor jest prawdopodobną liczbą pierwszą
14
Znaleziono prawdopodobny czynnik pierwszy, kofaktor jest prawdopodobną liczbą pierwszą
Korzystaj z ecm online, korzystając z usług onworks.net