08 marca 2020

Faktoryzacja z podstawy systemu, kolejna własność

Przyglądając się uzyskanym wartościom widzę, że nie muszę się ograniczać do nieujemnych b, c w niezmienniku
(d+b)*d+c = n
Liczba n jest wtedy dwucyfrowa, ale dzięki ujemnemu b jest zapisywana jako trójcyfrowa.
Przesunięcie to pozwala wyeliminować obliczanie kolejnych pierwiastków z liczby rozkładanej. Wystarczy jeden, zaś rozpatrywany przedział to potęga dwójki
2^k <= sqrt n < 3*2^k
W tym przedziale mozemy posługiwać się potęgami dwójki, by wyznaczyć tablicę małych liczb pierwszych, by je wyeliminować.Po prostu przechodzimy po wartościach a*2^j, gdzie j>=k/2 szukając liczb pierwszych jak w sicie Eratostenesa. Liczby te łączymy z ich wielokrotnościami jak najbliższymi skrajnej potęgi 2^k, a potem przegląd zupełny.

Reszta jak poprzednio. Znając dzielniki d mniejsze niż sqrt d, wyłączamy je uzyskując 1 lub liczbę pierwszą. Tą prównujemy z c. Jeśli wspólny dzielnik c i którejś z liczb pierwszych jest większy niż 1, jest to dzielnik liczby rozkładanej.