Różnica pomiędzy stronami "CRT, twierdzenia Lagrange'a, Wilsona i Fermata, kryterium Eulera, symbole Legendre'a i Jacobiego" i "Testy pierwszości. Liczby pseudopierwsze Fermata i liczby silnie pseudopierwsze"

Z Henryk Dąbrowski
(Różnica między stronami)
Przejdź do nawigacji Przejdź do wyszukiwania
 
 
Linia 1: Linia 1:
<div style="text-align:right; font-size: 130%; font-style: italic; font-weight: bold;">22.03.2023</div>
+
<div style="text-align:right; font-size: 130%; font-style: italic; font-weight: bold;">11.11.2022</div>
  
 
__FORCETOC__
 
__FORCETOC__
Linia 5: Linia 5:
  
  
== Chińskie twierdzenie o&nbsp;resztach ==
+
== Potęgowanie modulo ==
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J1</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K1</span><br/>
Niech <math>a, u \in \mathbb{Z}</math> i <math>m, n \in \mathbb{Z}_+</math> i <math>\gcd (m, n) = 1</math>. Kongruencja
+
Z twierdzenia Fermata (zobacz J19) wynika, że jeżeli liczby <math>a</math> i <math>m</math> są względnie pierwsze oraz <math>m</math> nie dzieli liczby <math>a^{m - 1} - 1</math>, to <math>m</math> jest liczbą złożoną. Każde twierdzenie pozwalające wykryć złożoność liczby może być wykorzystane do badania pierwszości liczb. Twierdzenia takie nie dają całkowitej pewności, że badana liczba jest pierwsza. Mamy na przykład <math>341 = 11 \cdot 31</math>, ale <math>341 | (2^{340} - 1)</math>, bo
  
::<math>u \equiv a \pmod{m n}</math>
+
::<math>2^{340} - 1 = 2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115775</math>
  
jest równoważna układowi kongruencji
+
::::<math>\;\;\; = 341 \cdot 6568166399348399444449977362370804334667582103327417990909058947107894050381703652143335757394742275</math>
  
::<math>\begin{align}
+
Widzimy, że nawet dla niewielkiej liczby <math>341</math>, potęga <math>2^{340} - 1</math> jest liczbą ogromną. Jeśli ta metoda ma mieć jakiekolwiek zastosowanie, to musimy znaleźć inny sposób obliczania reszty z&nbsp;dzielenia <math>a^n</math> przez <math>m</math>, czyli potęgowania modulo <math>m</math>.
u &\equiv a \pmod{m} \\
 
u &\equiv a \pmod{n}
 
\end{align}</math>
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
<math>\Longrightarrow</math><br/>
 
Jeżeli liczba <math>u - a</math> jest podzielna przez iloczyn <math>m n</math>, to tym bardziej jest podzielna przez dowolny czynnik tego iloczynu, skąd wynika natychmiast wypisany układ kongruencji.
 
  
<math>\Longleftarrow</math><br/>
 
Z kongruencji
 
  
::<math>u \equiv a \pmod{m}</math>
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K2</span><br/>
 +
Wykorzystując wzór rekurencyjny
  
wynika, że <math>u - a = k m</math>, zaś z&nbsp;kongruencji
+
::<math>a^n = \left\{ \begin{array}{cll}
 +
  a &  & \text{gdy } n = 1\\
 +
  (a^2)^{{\large\frac{n}{2}}} &  & \text{gdy } n \text{ jest parzyste}\\
 +
  a \cdot (a^2)^{{\large\frac{n - 1}{2}}} &  & \text{gdy } n \text{ jest nieparzyste}
 +
\end{array} \right.</math>
  
::<math>u \equiv a \pmod{n}</math>
 
  
otrzymujemy <math>n \, | \, (u - a)</math>, czyli <math>n \, | \, k m</math>. Ponieważ <math>\gcd (m, n) = 1</math>, zatem <math>n \, | \, k</math> (zobacz C72) i&nbsp;istnieje taka liczba całkowita <math>s</math>, że <math>k = s n</math>, czyli <math>u - a = s n m</math>, a&nbsp;stąd <math>u \equiv a \!\! \pmod{m n}</math>. Co kończy dowód.<br/>
+
możemy napisać w&nbsp;PARI/GP prosty program do potęgowania modulo:
&#9633;
 
{{\Spoiler}}
 
  
 +
<span style="font-size: 90%; color:black;">modPower(a, n, m) =
 +
\\ a - podstawa, n - wykładnik, m - moduł
 +
{
 +
'''local'''(w);
 +
'''if'''( m == 1, '''return'''(0) );
 +
a = a % m;
 +
w = 1;
 +
'''while'''( n > 0,
 +
        '''if'''( n % 2 == 1, w = (w * a) % m; n = n - 1); \\ gdy n&nbsp;jest nieparzyste, wyłączamy a&nbsp;i&nbsp;zmniejszamy n&nbsp;o&nbsp;jeden
 +
        a = (a*a) % m; \\ wyliczamy nową podstawę modulo m
 +
        n = n/2; \\ dla nowej podstawy wykładnik jest dwa razy mniejszy
 +
      );
 +
'''return'''(w);
 +
}</span>
  
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J2</span><br/>
+
Zauważmy, że w&nbsp;funkcji <code>modPower()</code> nie występują wyrażenia o&nbsp;wartości większej od <math>m^2</math>.
Dla dowolnych liczb <math>a, b \in \mathbb{Z}</math> i&nbsp;względnie pierwszych liczb <math>m, n \in \mathbb{Z}_+</math> istnieje dokładnie jedna taka liczba <math>c</math> (określona modulo <math>m n</math>), że prawdziwy jest układ kongruencji
 
 
 
::<math>\begin{align}
 
c & \equiv a \pmod{m} \\
 
c & \equiv b \pmod{n}
 
\end{align}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z&nbsp;założenia liczby <math>m</math> i <math>n</math> są względnie pierwsze, zatem na mocy lematu Bézouta (C.71) istnieją takie liczby <math>x, y \in \mathbb{Z}</math>, że
 
 
 
::<math>m x + n y = 1</math>
 
 
 
Niech <math>c = a n y + b m x</math>. Modulo <math>m</math> dostajemy
 
 
 
::<math>c \equiv a n y \pmod{m}</math>
 
 
 
::<math>c \equiv a (1 - m x) \pmod{m}</math>
 
 
 
::<math>c \equiv a \pmod{m}</math>
 
 
 
Natomiast modulo <math>n</math> mamy
 
 
 
::<math>c \equiv b m x \pmod{n}</math>
 
 
 
::<math>c \equiv b (1 - n y) \pmod{n}</math>
 
 
 
::<math>c \equiv b \pmod{n}</math>
 
 
 
Pokazaliśmy tym samym istnienie szukanej liczby <math>c</math>. Przypuśćmy, że istnieją dwie takie liczby <math>c</math> i <math>d</math>. Z&nbsp;założenia <math>m \, | \, (d - a)</math> i <math>m \, | \, (c - a)</math>, zatem <math>m</math> dzieli różnicę tych liczb, czyli <math>m \, | \, (d - c)</math>. Podobnie pokazujemy, że <math>n \, | \, (d - c)</math>. Ponieważ liczby <math>m</math> i <math>n</math> są względnie pierwsze, to <math>m n \, | \, (d - c)</math> (zobacz C73), co oznacza, że
 
 
 
::<math>d \equiv c \pmod{m n}</math>.
 
 
 
Czyli możemy powiedzieć, że wybrana przez nas liczba <math>c</math> jest określona modulo <math>m n</math> i&nbsp;tak rozumiana jest dokładnie jedna. W&nbsp;szczególności istnieje tylko jedna liczba <math>c</math> taka, że <math>1 \leqslant c \leqslant m n</math>.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J3 (chińskie twierdzenie o&nbsp;resztach)</span><br/>
 
Niech <math>a, b, c, u \in \mathbb{Z}</math> i <math>m, n \in \mathbb{Z}_+</math> oraz niech <math>\gcd (m, n) = 1</math>. Istnieje dokładnie jedna liczba <math>c</math> (określona modulo <math>m n</math>) taka, że kongruencja
 
 
 
::<math>u \equiv c \pmod{m n}</math>
 
 
 
jest równoważna układowi kongruencji
 
 
 
::<math>\begin{align}
 
u & \equiv a \pmod{m} \\
 
u & \equiv b \pmod{n}
 
\end{align}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z&nbsp;twierdzenia J2 wiemy, że istnieje dokładnie jedna liczba <math>c</math> (określona modulo <math>m n</math>) taka, że prawdziwy jest układ kongruencji
 
 
 
::<math>\begin{align}
 
c & \equiv a \pmod{m} \\
 
c & \equiv b \pmod{n}
 
\end{align}</math>
 
 
 
Korzystając z&nbsp;tego rezultatu i&nbsp;twierdzenia J1, otrzymujemy
 
 
 
::<math>u \equiv c \pmod{m n} \qquad \Longleftrightarrow \qquad
 
\begin{array}{l}
 
  u \equiv c \; \pmod{m} \\
 
  u \equiv c \; \pmod{n} \\
 
\end{array} \qquad \Longleftrightarrow \qquad
 
\begin{array}{l}
 
  u \equiv a \; \pmod{m} \\
 
  u \equiv b \:\, \pmod{n} \\
 
\end{array} </math>
 
 
 
Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J4</span><br/>
 
Chińskie twierdzenie o&nbsp;resztach<ref name="CRT1"/> (CRT<ref name="CRT2"/>) pozostaje prawdziwe w&nbsp;przypadku układu skończonej liczby kongruencji. Założenie, że moduły <math>m</math> i <math>n</math> są względnie pierwsze, jest istotne. Przykładowo układ kongruencji
 
 
 
::<math>\begin{align}
 
u &\equiv 1 \pmod{4} \\
 
u &\equiv 3 \pmod{8}
 
\end{align}</math>
 
 
 
nie może być zapisany w&nbsp;postaci jednej równoważnej kongruencji, bo nie istnieją liczby, które spełniałyby powyższy układ jednocześnie. Łatwo zauważamy, że rozwiązaniem pierwszego równania jest <math>u = 4 k + 1</math>, które dla liczb <math>k</math> parzystych i&nbsp;nieparzystych ma postać
 
 
 
::<math>u = 8 j + 1, \qquad u = 8 j + 5</math>
 
 
 
i nie może być <math>u \equiv 3 \!\! \pmod{8}</math>.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J5</span><br/>
 
Niech <math>u, a_1, \ldots, a_k \in \mathbb{Z}</math> i <math>m_1, \ldots, m_k \in \mathbb{Z}_+</math>. Pokazać, że jeżeli liczby <math>m_1, \ldots, m_k</math> są parami względnie pierwsze (czyli <math>\gcd (m_i, m_j) = 1</math> dla <math>i \neq j</math>), to istnieje dokładnie jedna liczba <math>c</math> (określona modulo <math>m_1 \cdot \ldots \cdot m_k</math>) taka, że układ kongruencji
 
 
 
::<math>\begin{align}
 
u & \equiv a_1 \pmod{m_1} \\
 
  & \cdots \\
 
u & \equiv a_k \pmod{m_k}
 
\end{align}</math>
 
 
 
można zapisać w&nbsp;sposób równoważny w&nbsp;postaci kongruencji
 
 
 
::<math>u \equiv c \;\; \pmod{m_1 \cdot \ldots \cdot m_k}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Indukcja matematyczna. Twierdzenie jest prawdziwe dla liczby <math>k = 2</math> (zobacz J3). Zakładając prawdziwość twierdzenia dla liczby naturalnej <math>k \geqslant 2</math>, dla liczby <math>k + 1</math> otrzymujemy układ kongruencji
 
 
 
::<math>\begin{align}
 
u & \equiv c \quad \;\, \pmod{m_1 \cdot \ldots \cdot m_k} \\
 
u & \equiv a_{k + 1} \pmod{m_{k + 1}}
 
\end{align}</math>
 
 
 
gdzie skorzystaliśmy z&nbsp;założenia indukcyjnego. Z&nbsp;twierdzenia J3 wynika, że układ ten można zapisać w&nbsp;sposób równoważny w&nbsp;postaci kongruencji
 
 
 
::<math>u \equiv c' \pmod{m_1 \cdot \ldots \cdot m_k m_{k + 1}}</math>
 
 
 
gdzie liczba <math>c'</math> jest dokładnie jedna i&nbsp;jest określona modulo <math>m_1 \cdot \ldots \cdot m_k m_{k + 1}</math>. Zatem twierdzenie jest prawdziwe dla <math>k + 1</math>. Co kończy dowód indukcyjny.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Przykład J6</span><br/>
 
Dysponujemy pewną ilością kulek. Grupując je po <math>5</math>, zostają nam <math>3</math>, a&nbsp;kiedy próbujemy ustawić je po <math>7</math>, zostają nam <math>4</math>. Jaka najmniejsza ilość kulek spełnia te warunki? Rozważmy układ kongruencji
 
 
 
::<math>\begin{align}
 
n &\equiv 3 \pmod{5} \\
 
n &\equiv 4 \pmod{7}
 
\end{align}</math>
 
 
 
Z chińskiego twierdzenia o&nbsp;resztach wiemy, że powyższy układ możemy zapisać w&nbsp;postaci równoważnej kongruencji modulo <math>35</math>. Jeśli chcemy zaoszczędzić sobie trudu, to wystarczy skorzystać z&nbsp;PARI/GP. Wpisując proste polecenie
 
 
 
<span style="font-size: 90%; color:black;">chinese( Mod(3,5), Mod(4,7) )</span>
 
 
 
uzyskujemy wynik <code>Mod(18, 35)</code>, zatem równoważna kongruencja ma postać
 
 
 
::<math>n \equiv 18 \pmod{35}</math>
 
 
 
Jest to zarazem odpowiedź na postawione pytanie: najmniejsza liczba kulek wynosi <math>18</math>.
 
 
 
Gdybyśmy chcieli rozważać bardziej rozbudowany układ kongruencji, przykładowo
 
 
 
::<math>\begin{align}
 
n &\equiv 1 \pmod{2} \\
 
n &\equiv 2 \pmod{3} \\
 
n &\equiv 3 \pmod{5} \\
 
n &\equiv 4 \pmod{7} \\
 
n &\equiv 5 \pmod{11}
 
\end{align}</math>
 
 
 
to argumenty należy zapisać w&nbsp;postaci wektora
 
 
 
<span style="font-size: 90%; color:black;">chinese( [Mod(1,2), Mod(2,3), Mod(3,5), Mod(4,7), Mod(5,11)] )</span>
 
 
 
Otrzymujemy <code>Mod(1523, 2310)</code>.
 
 
 
 
 
 
 
 
 
 
 
== Wielomiany ==
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J7</span><br/>
 
Niech <math>W_n (x)</math> będzie dowolnym wielomianem stopnia <math>n</math>. Wielomian <math>W_n (x)</math> można przedstawić w&nbsp;postaci
 
 
 
::<math>W_n (x) = W_n (s) + (x - s) V_{n - 1} (x)</math>
 
 
 
gdzie <math>V_{n - 1} (x)</math> jest wielomianem stopnia <math>n - 1</math>, a&nbsp;współczynniki wiodące wielomianów <math>W_n (x)</math> i <math>V_{n - 1} (x)</math> są sobie równe.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z założenia <math>W_n (x) = \sum_{k = 0}^{n} a_k x^k</math>, gdzie <math>a_n \neq 0</math>. Zauważmy, że
 
 
 
::<math>W_n (x) - W_n (s) = \sum_{k = 0}^{n} a_k x^k - \sum_{k = 0}^{n} a_k s^k</math>
 
 
 
::::::<math>\quad \; = \sum_{k = 1}^{n} a_k (x^k - s^k)</math>
 
 
 
Dla <math>k \geqslant 1</math> prawdziwy jest wzór
 
 
 
::<math>x^k - s^k = (x - s) \sum_{j = 1}^{k} x^{k - j} s^{j - 1}</math>
 
 
 
::::<math>\;\,\, = (x - s) (x^{k - 1} + s x^{k - 2} + \ldots + s^{k - 2} x + s^{k - 1})</math>
 
 
 
::::<math>\;\,\, = (x - s) U^{(k)} (x)</math>
 
 
 
Gdzie przez <math>U^{(k)} (x) = \sum_{j = 1}^{k} x^{k - j} s^{j - 1}</math> oznaczyliśmy wielomian, którego stopień jest równy <math>k - 1</math>. Zatem możemy napisać
 
 
 
::<math>W_n (x) - W_n (s) = (x - s) \sum_{k = 1}^{n} a_k U^{(k)} (x)</math>
 
 
 
Suma wypisana po prawej stronie jest pewnym wielomianem <math>V_{n - 1} (x)</math>. Ponieważ ze wszystkich wielomianów <math>a_k U^{(k)} (x)</math>, wielomian <math>a_n U^{(n)} (x)</math> ma największy stopień równy <math>n - 1</math>, to stopień wielomianu <math>V_{n - 1} (x)</math> jest równy <math>n - 1</math>. Czyli
 
 
 
::<math>W_n (x) - W_n (s) = (x - s) V_{n - 1} (x)</math>
 
 
 
Niech <math>V_n (x) = \sum_{k = 0}^{n - 1} b_k x^k</math>. Mamy
 
 
 
::<math>\sum_{k = 0}^{n} a_k x^k - W_n (s) = \sum_{k = 0}^{n - 1} b_k x^{k + 1} - s \sum_{k = 0}^{n - 1} b_k x^k</math>
 
 
 
Porównując wyrazy o&nbsp;największym stopniu, łatwo zauważamy, że <math>a_n = b_{n - 1}</math>. Czyli współczynnik wiodący wielomianu <math>V_{n - 1} (x)</math> jest równy <math>a_n</math>. Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Definicja J8</span><br/>
 
Wielomian <math>W_n (x) = \sum_{k = 0}^{n} a_k x^k</math>, gdzie <math>a_0, \ldots, a_n \in \mathbb{Z}</math> oraz <math>a_n \neq 0</math>, będziemy nazywali wielomianem całkowitym stopnia <math>n</math>.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Definicja J9</span><br/>
 
Powiemy, że wielomian całkowity <math>W_n (x) = \sum_{k = 0}^{n} a_k x^k</math> jest stopnia <math>n</math> modulo <math>p</math>, gdzie <math>p</math> jest liczbą pierwszą, jeżeli <math>p \nmid a_n</math>. Jeżeli każdy współczynnik <math>a_k</math>, gdzie <math>k = 0, 1, \ldots, n</math>, jest podzielny przez <math>p</math>, to stopień wielomianu <math>W_n (x)</math> modulo <math>p</math> jest nieokreślony.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J10</span><br/>
 
Niech <math>W_n (x) = \sum_{k = 0}^{n} a_k x^k</math> będzie wielomianem całkowitym i <math>m \in \mathbb{Z}_+</math>. Jeżeli prawdziwa jest kongruencja <math>x \equiv y \!\! \pmod{m}</math>, to
 
 
 
::<math>W_n (x) \equiv W_n (y) \pmod{m}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Dla <math>k \geqslant 1</math> wyrażenie <math>x^k - y^k</math> jest podzielne przez <math>x - y</math>, co łatwo pokazać stosując indukcję matematyczną lub zauważając, że
 
 
 
::<math>x^k - y^k = (x - y) \sum_{j = 1}^{k} x^{k - j} y^{j - 1}</math>
 
 
 
Z założenia <math>m \, | \, (x - y)</math>, zatem dla <math>k \geqslant 1</math> mamy <math>m \, | \, (x^k - y^k)</math>. Wynika stąd, że prawdziwe są kongruencje
 
 
 
::<math>\begin{align}
 
  a_0 & \equiv a_0 \;\;\:\, \pmod{m}\\
 
  a_1 x & \equiv a_1 y \;\, \pmod{m}\\
 
  a_2 x^2 & \equiv a_2 y^2 \pmod{m}\\
 
  & \cdots \\
 
  a_n x^n & \equiv a_n y^n \pmod{m}
 
\end{align}</math>
 
 
 
Dodając wypisane kongruencje stronami, otrzymujemy
 
 
 
::<math>W_n (x) \equiv W_n (y) \pmod{m}</math>
 
 
 
Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J11</span><br/>
 
Niech <math>W(x)</math> będzie wielomianem całkowitym. Rozważmy kongruencję
 
 
 
::<math>W(x) \equiv 0 \pmod{m n} \qquad \qquad \qquad (1)</math>
 
 
 
gdzie liczby <math>m</math> i <math>n</math> są względnie pierwsze.
 
 
 
Kongruencja ta jest równoważna układowi kongruencji
 
 
 
::<math>\begin{align}
 
  W (x) &\equiv 0 \pmod{m}\\
 
  W (x) &\equiv 0 \pmod{n}
 
\end{align} \qquad \qquad \qquad \; (2)</math>
 
  
Zatem problem szukania rozwiązań kongruencji <math>(1)</math> możemy sprowadzić do szukania rozwiązań układu kongruencji <math>(2)</math>. W&nbsp;szczególności wynika stąd, że jeżeli któraś z&nbsp;kongruencji <math>(2)</math> nie ma rozwiązania, to kongruencja <math>W(x) \equiv 0 \!\! \pmod{m n}</math> również nie ma rozwiązania.
 
  
Załóżmy, że każda z&nbsp;kongruencji <math>(2)</math> ma przynajmniej jedno rozwiązanie i&nbsp;niech
 
  
:* <math>x \equiv a \!\! \pmod{m}</math> będzie pierwiastkiem kongruencji <math>W (x) \equiv 0 \!\! \pmod{m}</math>
 
:* <math>x \equiv b \!\! \pmod{n}</math> będzie pierwiastkiem kongruencji <math>W (x) \equiv 0 \!\! \pmod{n}</math>
 
  
Pierwiastki te tworzą układ kongruencji
 
  
::<math>\begin{align}
+
== Liczby pseudopierwsze Fermata ==
x &\equiv a \pmod{m} \\
 
x &\equiv b \pmod{n}
 
\end{align} \qquad \qquad \qquad \qquad (3)</math>
 
  
Z chińskiego twierdzenia o&nbsp;resztach wiemy, że układ ten możemy zapisać w&nbsp;postaci równoważnej
+
Liczby złożone nieparzyste spełniające równanie Fermata, otrzymały własną nazwę.
  
::<math>x \equiv c \pmod{m n}</math>
+
<span style="font-size: 110%; font-weight: bold;">Definicja K3</span><br/>
 +
Jeżeli <math>m</math> jest liczbą złożoną nieparzystą i&nbsp;dla pewnego <math>a \in \mathbb{Z}</math> prawdziwa jest kongruencja
  
Zauważmy, że liczba <math>c</math> określona modulo <math>m n</math> jest rozwiązaniem kongruencji <math>(1)</math>. Istotnie z&nbsp;twierdzenia J10 mamy
+
::<math>a^{m - 1} \equiv 1 \pmod m</math>
  
::<math>\begin{align}
+
to powiemy, że <math>m</math> jest liczbą pseudopierwszą Fermata przy podstawie <math>a</math> lub krótko: <math>m</math> jest PSP(<math>a</math>).
  W (c) &\equiv W (a) \equiv 0 \pmod{m} \\
 
  W (c) &\equiv W (b) \equiv 0 \pmod{n}
 
\end{align}</math>
 
  
ale liczby <math>m, n</math> są względnie pierwsze, zatem otrzymujemy, że
 
  
::<math>W (c) \equiv 0 \pmod{m n}</math>
 
  
Wynika stąd, że każdemu układowi rozwiązań <math>(3)</math> odpowiada dokładnie jedno rozwiązanie kongruencji <math>(1)</math>.
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K4</span><br/>
 +
Zauważmy, że w&nbsp;definicji liczb pseudopierwszych Fermata nie musimy dodatkowo dołączać warunku <math>\gcd (a, m) = 1</math>, bo wynika on z&nbsp;przyjętej definicji. Mamy
  
Podsumujmy: jeżeli kongruencje
+
::<math>\gcd (a^{m - 1}, m) = \gcd (1, m) = 1</math>
  
::<math>\begin{align}
+
Zatem <math>\gcd (a, m) = 1</math>.
  W (x) &\equiv 0 \pmod{m}\\
 
  W (x) &\equiv 0 \pmod{n}
 
\end{align}</math>
 
  
mają odpowiednio <math>r</math> i <math>s</math> pierwiastków, to liczba różnych układów kongruencji <math>(3)</math> jest równa iloczynowi <math>r s</math> i&nbsp;istnieje <math>r s</math> różnych rozwiązań kongruencji
+
Możemy też łatwo pokazać, że jeżeli <math>\gcd (a, m) = d > 1</math>, to liczba <math>m</math> nie może być liczbą pseudopierwszą Fermata przy podstawie <math>a</math>. Istotnie, gdyby tak było, to mielibyśmy
  
::<math>W(x) \equiv 0 \pmod{m n}</math>
+
::<math>a^{m - 1} \equiv 1 \pmod{m}</math>
  
 +
Ponieważ <math>d|m</math>, to jest również
  
 +
::<math>a^{m - 1} \equiv 1 \pmod{d}</math>
  
 +
Ale modulo <math>d</math> otrzymujemy natychmiast
  
 +
::<math>0 \equiv 1 \pmod{d}</math>
  
== Twierdzenie Lagrange'a ==
+
Co jest niemożliwe, czyli <math>m</math> nie jest PSP(<math>a</math>).
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J12</span><br/>
 
Kongruencja
 
  
::<math>a_1 x + a_0 \equiv 0 \pmod{p}</math>
 
  
gdzie <math>p \nmid a_1</math>, ma dokładnie jedno rozwiązanie modulo <math>p</math>.
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie K5</span><br/>
 +
Dla każdej podstawy <math>a \geqslant 2</math> istnieje nieskończenie wiele liczb pseudopierwszych Fermata.
  
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 +
Niech <math>a \in \mathbb{Z}</math> i <math>a \geqslant 2</math>. Jeżeli <math>p</math> jest liczbą pierwszą nieparzystą, to
  
'''A. Istnienie rozwiązania'''
+
::<math>a^p - 1 = (a - 1) (a^{p - 1} + a^{p - 2} + \ldots + a^2 + a + 1)</math>
 
 
Ponieważ rozpatrywaną kongruencję możemy zapisać w&nbsp;postaci <math>a_1 x + a_0 = k p</math>, to istnienie liczb <math>x</math> i <math>k</math>, dla których ta równość jest prawdziwa, wynika z&nbsp;twierdzenia C74. Poniżej przedstawimy jeszcze jeden sposób znalezienia rozwiązania.
 
 
 
Ponieważ <math>\gcd (a_1, p) = 1</math>, to istnieją takie liczby <math>r, s</math>, że <math>a_1 r + p s = 1</math> (zobacz C71 - lemat Bézouta). Zauważmy, że <math>p \nmid r</math>, bo gdyby tak było, to liczba pierwsza <math>p</math> dzieliłaby wyrażenie <math>a_1 r + p s</math>, ale jest to niemożliwe, bo <math>a_1 r + p s = 1</math>. Czyli modulo <math>p</math> mamy
 
 
 
::<math>a_1 r \equiv 1 \pmod{p}</math>
 
 
 
Mnożąc rozpatrywaną kongruencję przez <math>r</math>, otrzymujemy
 
 
 
::<math>a_1 r x + a_0 r \equiv 0 \pmod{p}</math>
 
 
 
Zatem
 
 
 
::<math>x \equiv - a_0 r \pmod{p}</math>
 
 
 
'''B. Brak innych rozwiązań'''
 
 
 
Przypuśćmy, że istnieją dwa różne rozwiązania kongruencji
 
 
 
::<math>a_1 x + a_0 \equiv 0 \pmod{p}</math>
 
 
 
Jeśli oznaczymy je przez <math>x_1</math> i <math>x_2</math>, to otrzymamy
 
 
 
::<math>a_1 x_1 + a_0 \equiv 0 \equiv a_1 x_2 + a_0 \pmod{p}</math>
 
 
 
Czyli
 
 
 
::<math>a_1 x_1 \equiv a_1 x_2 \pmod{p}</math>
 
 
 
::<math>p \, | \, a_1 (x_1 - x_2)</math>
 
 
 
Ponieważ <math>p \nmid a_1</math>, to z&nbsp;lematu Euklidesa (C72) otrzymujemy natychmiast <math>p \, | \, (x_1 - x_2)</math>. Skąd wynika, że <math>x_1 \equiv x_2 \!\! \pmod{p}</math>, wbrew założeniu, że <math>x_1</math> i <math>x_2</math> są dwoma różnymi rozwiązaniami. Co kończy dowód.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J13 (Joseph Louis Lagrange, 1768)</span><br/>
 
Jeżeli wielomian <math>W_n (x) = \sum_{k = 0}^{n} a_k x^k</math> ma stopień <math>n</math> modulo <math>p</math>, gdzie <math>n \geqslant 1</math>, to kongruencja
 
 
 
::<math>W_n (x) \equiv 0 \pmod{p}</math>
 
 
 
ma co najwyżej <math>n</math> rozwiązań.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Indukcja matematyczna. Z&nbsp;J12 wiemy, że dowodzone twierdzenie jest prawdziwe dla <math>n = 1</math>. Załóżmy, że twierdzenie jest prawdziwe dla wszystkich liczb całkowitych dodatnich nie większych od <math>n - 1</math>. Niech wielomian <math>W_n (x)</math> ma stopień <math>n</math> modulo <math>p</math>. Jeżeli kongruencja
 
 
 
::<math>W_n (x) \equiv 0 \pmod{p}</math>
 
 
 
nie ma żadnego rozwiązania, to dowodzone twierdzenie jest prawdziwe dla <math>n</math>. Przypuśćmy teraz, że wypisana wyżej kongruencja ma przynajmniej jeden pierwiastek <math>x \equiv s \!\! \pmod{p}</math>. Korzystając z&nbsp;twierdzenia J7, możemy napisać
 
 
 
::<math>W_n (x) - W_n (s) = (x - s) V_{n - 1} (x)</math>
 
 
 
gdzie wielomian <math>V_{n - 1} (x)</math> ma stopień <math>n - 1</math> modulo <math>p</math>, bo wielomiany <math>W_n (x)</math> oraz <math>V_{n - 1} (x)</math> mają jednakowe współczynniki wiodące.
 
 
 
 
 
Z założenia <math>x \equiv s \!\! \pmod{p}</math> jest jednym z&nbsp;pierwiastków kongruencji <math>W_n (x) \equiv 0 \!\! \pmod{p}</math>, zatem modulo <math>p</math> otrzymujemy
 
 
 
::<math>W_n (x) \equiv (x - s) V_{n - 1} (x) \pmod{p}</math>
 
 
 
Ponieważ <math>p</math> jest liczbą pierwszą, to z&nbsp;rozpatrywanej kongruencji
 
 
 
::<math>W_n (x) \equiv 0 \pmod{p}</math>
 
 
 
wynika, że musi być (zobacz C72)
 
 
 
::<math>x \equiv s \pmod{p} \qquad \qquad \text{lub} \qquad \qquad V_{n - 1} (x) \equiv 0 \pmod{p}</math>
 
 
 
 
 
Z założenia indukcyjnego kongruencja
 
 
 
::<math>V_{n - 1} (x) \pmod{p}</math>
 
 
 
ma co najwyżej <math>n - 1</math> rozwiązań, zatem kongruencja
 
 
 
::<math>W_n (x) \equiv 0 \pmod{p}</math>
 
 
 
ma nie więcej niż <math>n</math> rozwiązań. Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J14</span><br/>
 
Jeżeli kongruencja
 
 
 
::<math>a_n x^n + a_{n - 1} x^{n - 1} + \ldots + a_1 x + a_0 \equiv 0 \pmod{p}</math>
 
 
 
ma więcej niż <math>n</math> rozwiązań, to wszystkie współczynniki <math>a_k</math>, gdzie <math>k = 0, \ldots, n</math>, muszą być podzielne przez <math>p</math>.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Niech <math>S \subset \{ 0, 1, \ldots, n \}</math> będzie zbiorem takim, że dla każdego <math>k \in S</math> jest <math>p \nmid a_k</math>. Przypuśćmy, że <math>S</math> jest zbiorem niepustym. Niech <math>j</math> oznacza największy element zbioru <math>S</math>. Jeżeli <math>j = 0</math>, to wielomian <math>W_n (x) = \sum_{k = 0}^{n} a_k x^k</math> jest stopnia <math>0</math> modulo <math>p</math> i
 
 
 
::<math>a_0 \not\equiv 0 \pmod{p}</math>
 
 
 
Konsekwentnie, dla dowolnego <math>x \in \mathbb{Z}</math> jest
 
 
 
::<math>a_n x^n + a_{n - 1} x^{n - 1} + \ldots + a_1 x + a_0 \not\equiv 0 \pmod{p}</math>
 
 
 
bo dla każdego <math>1 \leqslant k \leqslant n</math> mamy <math>a_k \equiv 0 \!\! \pmod{p}</math>. Zatem rozpatrywana kongruencja nie ma ani jednego rozwiązania, czyli rozwiązań nie może być więcej niż <math>n</math>.
 
 
 
W przypadku gdy <math>j \neq 0</math>, z&nbsp;twierdzenia Lagrange'a wynika, że rozpatrywana kongruencja ma nie więcej niż <math>j \leqslant n</math> rozwiązań, ponownie wbrew założeniu, że kongruencja ta ma więcej niż <math>n</math> rozwiązań. Uczynione przypuszczenie, że <math>S</math> jest zbiorem niepustym, okazało się fałszywe, zatem zbiór <math>S</math> musi być zbiorem pustym. Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Przykład J15</span><br/>
 
Z twierdzenia Lagrange'a wynika, że kongruencja
 
 
 
::<math>x^p - x - 1 \equiv 0 \pmod{p}</math>
 
 
 
ma co najwyżej <math>p</math> rozwiązań. W&nbsp;rzeczywistości nie ma ani jednego rozwiązania, bo z&nbsp;twierdzenia Fermata wiemy, że dla dowolnej liczby pierwszej <math>p</math> jest
 
 
 
::<math>x^p \equiv x \pmod{p}</math>
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Przykład J16</span><br/>
 
Zauważmy, że w&nbsp;przypadku, gdy <math>n \geqslant p</math>, możemy zawsze wielomian przekształcić do postaci takiej, że <math>n < p</math>. Niech <math>p = 5</math> i
 
 
 
::<math>W(x) = x^{15} + 11 x^{11} + 5 x^5 + 2 x^2 + x + 1</math>
 
 
 
Ponieważ <math>x^5 \equiv x \!\! \pmod{5}</math>, to
 
 
 
::<math>W(x) \equiv x^3 + 11 x^3 + 5 x + 2 x^2 + x + 1 \equiv 12 x^3 + 2 x^2 + 6 x + 1 \pmod{5}</math>
 
 
 
Co wynika również z&nbsp;faktu, że <math>W(x)</math> można zapisać w&nbsp;postaci
 
 
 
::<math>W(x) = x^{15} + 11 x^{11} + 5 x^5 + 2 x^2 + x + 1 = (x^5 - x) (x^{10} + 12 x^6 + 12 x^2 + 5) + 12 x^3 + 2 x^2 + 6 x + 1</math>
 
 
 
ale <math>x^5 - x \equiv 0 \!\! \pmod{5}</math> na mocy twierdzenia Fermata.
 
  
 +
oraz
  
 +
::<math>a^p + 1 = (a + 1) (a^{p - 1} - a^{p - 2} + \ldots + a^2 - a + 1)</math>
  
 +
Czyli <math>a - 1 | a^p - 1</math> oraz <math>a + 1 | a^p + 1</math>.
  
  
== Twierdzenie Wilsona ==
+
Jeżeli przez <math>R_2 (a)</math> oznaczymy resztę z&nbsp;dzielenia liczby <math>a</math> przez <math>2</math> równą <math>0</math> lub <math>1</math>, to prawdziwe są kongruencje
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J17 (John Wilson, 1770)</span><br/>
+
::<math>a \equiv R_2 (a) \pmod 2</math>
Liczba całkowita <math>p \geqslant 2</math> jest liczbą pierwszą wtedy i&nbsp;tylko wtedy, gdy
 
 
 
::<math>(p - 1) ! \equiv - 1 \pmod{p}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
<math>\Longleftarrow</math><br/>
 
Przypuśćmy, że prawdziwa jest kongruencja <math>(p - 1) ! \equiv - 1 \!\! \pmod{p}</math> oraz <math>p</math> jest liczbą złożoną. Zatem liczba <math>p</math> ma dzielnik <math>d</math> taki, że <math>2 \leqslant d \leqslant p - 1</math>. Ponieważ <math>d \, | \, p</math>, to prawdziwa jest kongruencja
 
 
 
::<math>(p - 1) ! \equiv - 1 \pmod{d}</math>
 
 
 
czyli
 
 
 
::<math>0 \equiv - 1 \pmod{d}</math>
 
 
 
co jest niemożliwe.
 
 
 
<math>\Longrightarrow</math><br/>
 
Łatwo sprawdzamy, że twierdzenie jest prawdziwe dla <math>p = 2</math>. Niech teraz <math>p</math> będzie liczbą pierwszą nieparzystą. Rozważmy wielomiany
 
 
 
::<math>W(x) = (x - 1) (x - 2) \cdot \ldots \cdot (x - (p - 1))</math>
 
  
 
oraz
 
oraz
  
::<math>V(x) = x^{p - 1} - 1</math>
+
::<math>a^n \equiv R_2 (a) \pmod 2</math>
 
 
Zauważmy, że
 
 
 
:* stopnie tych wielomianów są równe <math>p - 1</math>
 
:* współczynniki wiodące są równe <math>1</math>
 
:* wyrazy wolne są równe odpowiednio <math>(p - 1) !</math> oraz <math>- 1</math>
 
:* wielomiany mają <math>p - 1</math> rozwiązań modulo <math>p</math>
 
 
 
Niech
 
 
 
::<math>U(x) = W (x) - V (x)</math>
 
 
 
Zauważmy, że
 
 
 
:* stopień wielomianu <math>U(x)</math> jest równy <math>p - 2 \geqslant 1</math>, ponieważ wyrazy o&nbsp;najwyższym stopniu uległy redukcji
 
:* wielomian <math>U(x)</math> ma <math>p - 1</math> rozwiązań modulo <math>p</math>, bo dla każdego <math>k \in \{ 1, 2, \ldots, p - 1 \}</math> mamy <math>U(k) = W (k) - V (k) \equiv 0 \!\! \pmod{p}</math>
 
 
 
Z twierdzenia Lagrange'a wiemy, że wielomian <math>U(x)</math> nie może mieć więcej niż <math>p - 2</math> rozwiązań modulo <math>p</math>. Zatem z&nbsp;twierdzenia J14 wynika natychmiast, że liczba pierwsza <math>p</math> musi dzielić każdy współczynnik <math>a_k</math> wielomianu <math>U(x)</math> i&nbsp;w&nbsp;szczególności musi dzielić wyraz wolny, który jest równy <math>(p - 1) ! + 1</math>. Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J18</span><br/>
 
Liczba całkowita nieparzysta <math>p \geqslant 3</math> jest liczbą pierwszą wtedy i tylko wtedy, gdy
 
 
 
::<math>\left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv (- 1)^{\tfrac{p + 1}{2}} \!\! \pmod{p}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z twierdzenia Wilsona wiemy, że liczba całkowita <math>p \geqslant 2</math> jest liczbą pierwszą wtedy i tylko wtedy, gdy
 
 
 
::<math>(p - 1) ! \equiv - 1 \pmod{p}</math>
 
 
 
W przypadku, gdy liczba <math>p</math> jest liczbą nieparzystą możemy powyższy wzór łatwo przekształcić. Ponieważ czynniki w <math>(p - 1) !</math> są określone modulo <math>p</math>, to odejmując od każdego czynnika większego od <math>{\small\frac{p - 1}{2}}</math> liczbę <math>p</math>, otrzymujemy
 
 
 
::<math>1 \cdot 2 \cdot \ldots \cdot {\small\frac{p - 3}{2}} \cdot {\small\frac{p - 1}{2}} \cdot \left( {\small\frac{p + 1}{2}} - p \right) \left( {\small\frac{p + 3}{2}} - p \right) \cdot \ldots \cdot (- 2) \cdot (- 1) \equiv - 1 \!\! \pmod{p}</math>
 
 
 
::<math>(- 1)^{\tfrac{p - 1}{2}} \cdot \left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv - 1 \!\! \pmod{p}</math>
 
 
 
::<math>\left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv (- 1)^{\tfrac{p + 1}{2}} \!\! \pmod{p}</math>
 
 
 
Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
 
 
 
 
== Twierdzenie Fermata ==
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J19 (Pierre de Fermat, 1640)</span><br/>
 
Niech <math>a \in \mathbb{Z}</math>. Jeżeli <math>p</math> jest liczbą pierwszą
 
 
 
:* to liczba <math>a^p - a</math> jest podzielna przez <math>p</math>, czyli <math>a^p \equiv a \!\! \pmod p</math>
 
:* i&nbsp;jeśli dodatkowo <math>p \nmid a</math>, to liczba <math>a^{p - 1} - 1</math> jest podzielna przez <math>p</math>, czyli <math>a^{p - 1} \equiv 1 \!\! \pmod p</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
'''Punkt 1.'''
 
 
 
Zauważmy, że<br/>
 
a) twierdzenie jest prawdziwe dla <math>a = 0</math><br/>
 
b) w&nbsp;przypadku, gdy <math>p = 2</math> wyrażenie <math>a^p - a = a^2 - a = a (a - 1)</math> jest podzielne przez <math>2</math>, bo jedna z&nbsp;liczb <math>a - 1</math> i <math>a</math> jest liczbą parzystą<br/>
 
c) w&nbsp;przypadku, gdy <math>p</math> jest liczbą pierwszą nieparzystą i&nbsp;twierdzenie jest prawdziwe dla <math>a \geqslant 1</math>, to jest też prawdziwe dla <math>- a</math>, bo
 
::<math>(- a)^p - (- a) = (- 1)^p a^p + a = - a^p + a = - (a^p - a)</math><br/>
 
 
 
 
 
Zatem wystarczy pokazać, że dla ustalonej liczby pierwszej nieparzystej <math>p</math> twierdzenie jest prawdziwe dla każdego <math>a \in \mathbb{Z}_+</math>.
 
 
 
Indukcja matematyczna. Dla <math>a = 1</math> mamy <math>1^p - 1 = 0</math> zatem liczba pierwsza <math>p</math> jest dzielnikiem rozważanego wyrażenia. Zakładając, że twierdzenie jest prawdziwe dla <math>a</math>, czyli <math>p|a^p - a</math>, otrzymujmy dla <math>a + 1</math>
 
 
 
::<math>(a + 1)^p - (a + 1) = \sum_{k = 0}^{p} \binom{p}{k} \cdot a^k - a - 1</math>
 
 
 
:::::::<math>\;\;\,\, = 1 + \sum_{k = 1}^{p - 1} \binom{p}{k} \cdot a^k + a^p - a - 1</math>
 
 
 
:::::::<math>\;\;\,\, = a^p - a + \sum^{p - 1}_{k = 1} \binom{p}{k} \cdot a^k</math>
 
 
 
 
 
Z założenia indukcyjnego <math>p|a^p - a</math>, zaś <math>\binom{p}{k} = {\small\frac{p!}{k! \cdot (p - k) !}}</math> dla <math>k = 1, 2, \ldots, p - 1</math> jest podzielne przez <math>p</math> (ponieważ <math>p</math> dzieli licznik, ale nie dzieli mianownika). Zatem <math>(a + 1)^p - (a + 1)</math> jest podzielne przez liczbę pierwszą <math>p</math>.
 
 
 
'''Punkt 2.'''
 
 
 
Z punktu 1. wiemy, że liczba pierwsza <math>p</math> dzieli <math>a^p - a = a (a^{p - 1} - 1)</math>. Jeżeli <math>p \nmid a</math>, to z&nbsp;lematu Euklidesa (zobacz twierdzenie C72) wynika natychmiast, że <math>p</math> dzieli <math>a^{p - 1} - 1</math>.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J20</span><br/>
 
Niech <math>x, y \in \mathbb{Z}</math>. Jeżeli <math>\gcd (x, y) = 1</math> i&nbsp;liczba pierwsza nieparzysta <math>p</math> dzieli <math>x^2 + y^2</math>, to <math>p</math> jest postaci <math>4 k + 1</math>.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z założenia
 
 
 
::<math>x^2 \equiv - y^2 \!\! \pmod{p}</math>
 
 
 
Przypuśćmy, że <math>p|y</math>. Wtedy z&nbsp;powyższej kongruencji mamy natychmiast, że <math>p|x</math>, wbrew założeniu, że <math>\gcd (x, y) = 1</math>. Zatem <math>p \nmid y</math> i&nbsp;z&nbsp;twierdzenia Fermata dostajemy
 
 
 
::<math>1 \equiv x^{p - 1} \equiv (x^2)^{\tfrac{p - 1}{2}} \equiv (- y^2)^{\tfrac{p - 1}{2}} \equiv y^{p - 1} \cdot (- 1)^{\tfrac{p - 1}{2}} \equiv (- 1)^{\tfrac{p - 1}{2}} \!\! \pmod{p}</math>
 
 
 
Wynika stąd, że <math>{\small\frac{p - 1}{2}}</math> musi być liczbą parzystą, czyli <math>p = 4 k + 1</math>. Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J21</span><br/>
 
Niech <math>x, y, n \geqslant 0</math>. Pokazać, że jedynymi rozwiązaniami równania
 
 
 
::<math>x^2 + y^2 = 2^n</math>
 
 
 
są liczby
 
 
 
:* <math>x = 2^{n / 2} \,</math> i <math>\, y = 0 \,</math> lub <math>\, x = 0 \,</math> i <math>\, y = 2^{n / 2}</math>, gdy <math>2 \, | \, n</math>
 
:* <math>x = y = 2^{(n - 1) / 2}</math>, gdy <math>2 \nmid n</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
'''A.''' Gdy jedna z&nbsp;liczb <math>x, y</math> jest równa <math>0</math> (powiedzmy <math>y</math>), to mamy <math>x = 2^{n / 2}</math>, gdy <math>n</math> jest parzyste. Gdy <math>n</math> jest nieparzyste, to rozwiązanie nie istnieje. Od tej pory będziemy zakładali, że <math>x, y \geqslant 1</math>
 
 
 
'''B.''' Wiemy, że kwadrat liczby nieparzystej przystaje do <math>1</math> modulo <math>4</math>. Gdy obie liczby <math>x, y</math> są nieparzyste, to modulo <math>4</math> mamy
 
 
 
::<math>2 \equiv 2^n \!\! \pmod{4}</math>
 
 
 
Kongruencja ta jest prawdziwa tylko dla <math>n = 1</math> i&nbsp;w&nbsp;tym przypadku mamy <math>(x, y) = (1, 1)</math>.
 
 
 
'''C.''' W&nbsp;przypadku, gdy obie liczby są parzyste, możemy napisać <math>x = 2^a u</math>, <math>y = 2^b w</math>, gdzie liczby <math>u, w</math> są nieparzyste. Nie zmniejszając ogólności możemy założyć, że <math>1 \leqslant a \leqslant b < {\small\frac{n}{2}}</math>. Dostajemy
 
 
 
::<math>u^2 + 2^{2 b - 2 a} w^2 = 2^{n - 2 a}</math>
 
 
 
Widzimy, że nie może być <math>a < b</math>, bo suma liczby nieparzystej i&nbsp;parzystej nie jest liczbą parzystą. Zatem <math>a = b</math> i&nbsp;otrzymujemy równanie
 
 
 
::<math>u^2 + w^2 = 2^{n - 2 a}</math>
 
 
 
które ma rozwiązanie w&nbsp;liczbach nieparzystych tylko dla wykładnika <math>n - 2 a = 1</math>. Mamy <math>u = w = 1</math>, zatem <math>x = y = 2^{(n - 1) / 2}</math> i <math>n</math> musi być liczbą nieparzystą.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J22</span><br/>
 
Niech <math>x, y \in \mathbb{Z}_+</math>. Jeżeli <math>x \neq y</math>, to liczba <math>x^2 + y^2</math> ma dzielnik pierwszy postaci <math>4 k + 1</math>.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
W&nbsp;przypadku, gdy <math>x = y</math> mamy <math>x^2 + y^2 = 2 y^2</math> i&nbsp;jeśli liczba <math>y</math> nie ma dzielnika pierwszego postaci <math>4 k + 1</math>, to nie ma go również liczba <math>2 y^2</math>. Przykładowo <math>x^2 + y^2 = 2 y^2 = 2^{2 r + 1}, 2 \cdot 3^{2 r}, 2 \cdot 7^{2 r}</math>. Dlatego zakładamy, że <math>x \neq y</math>. Analogiczna sytuacja ma miejsce, gdy jedna z&nbsp;liczb <math>x, y</math> jest równa zero. Dlatego zakładamy, że <math>x, y \in \mathbb{Z}_+</math>.
 
 
 
Niech <math>\gcd (x, y) = d</math>, zatem mamy <math>x = a d</math>, <math>y = b d</math>. Wynika stąd, że <math>x^2 + y^2 = d^2 (a^2 + b^2)</math>, gdzie <math>\gcd (a, b) = 1 \,</math> i <math>\, a \neq b</math>. Ponieważ <math>\, a \neq b</math>, to liczba <math>a^2 + b^2</math> musi mieć dzielnik pierwszy nieparzysty (zobacz J21). Z&nbsp;twierdzenia J20 zastosowanego do liczby <math>a^2 + b^2</math> wynika, że <math>a^2 + b^2</math> musi mieć dzielnik pierwszy postaci <math>4 k + 1</math>.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
 
 
 
 
== Kryterium Eulera ==
 
 
 
<span style="font-size: 110%; font-weight: bold;">Definicja J23</span><br/>
 
Niech <math>p</math> będzie liczbą pierwszą i <math>a \in \mathbb{Z}</math>. Powiemy, że liczba <math>a</math> jest liczbą kwadratową modulo <math>p</math>, jeżeli kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{p}</math>
 
 
 
ma rozwiązanie, czyli istnieje taka liczba <math>k \in \mathbb{Z}</math>, że <math>p \, | \, (k^2 - a)</math>.
 
 
 
Powiemy, że liczba <math>a</math> jest liczbą niekwadratową modulo <math>p</math>, jeżeli kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{p}</math>
 
 
 
nie ma rozwiązania.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J24</span><br/>
 
Jeżeli <math>p</math> jest liczbą pierwszą nieparzystą, to wśród liczb <math>1, 2, \ldots, p - 1</math> istnieje dokładnie <math>{\small\frac{p - 1}{2}}</math> liczb kwadratowych modulo <math>p</math> i&nbsp;tyle samo liczb niekwadratowych modulo <math>p</math>.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Zauważmy, że w&nbsp;rozważanym zbiorze liczb <math>\{ 1, 2, \ldots, p - 1 \}</math>, kwadraty liczb <math>k</math> i <math>p - k</math> są takimi samymi liczbami modulo <math>p</math>, co wynika z&nbsp;oczywistej kongruencji
 
 
 
::<math>k^2 \equiv (p - k)^2 \pmod{p}</math>
 
 
 
Pozwala to wypisać pary liczb, których kwadraty są identyczne modulo <math>p</math>
 
 
 
::<math>(1, p - 1), (2, p - 2), \ldots, \left( {\small\frac{p - 1}{2}}, p - {\small\frac{p - 1}{2}} \right)</math>
 
 
 
Ponieważ
 
 
 
::<math>p - {\small\frac{p - 1}{2}} = {\small\frac{p + 1}{2}} = {\small\frac{p - 1}{2}} + 1</math>
 
 
 
to wypisane pary wyczerpują cały zbiór <math>\{ 1, 2, \ldots, p - 1 \}</math>. Co więcej, liczby <math>1^2, 2^2, \ldots, \left( {\small\frac{p - 1}{2}} \right)^2</math> są wszystkie różne modulo <math>p</math>. Istotnie, przypuśćmy, że <math>1 \leqslant i, j \leqslant {\small\frac{p - 1}{2}}</math> oraz <math>i \neq j</math>, a&nbsp;jednocześnie <math>i^2 \equiv j^2 \!\! \pmod{p}</math>. Gdyby tak było, to mielibyśmy
 
 
 
::<math>(i - j) (i + j) \equiv 0 \pmod{p}</math>
 
 
 
Łatwo zauważamy, że jest to niemożliwe, bo żaden z&nbsp;czynników nie jest podzielny przez <math>p</math>, co wynika z&nbsp;prostych oszacowań
 
 
 
::<math>1 \leqslant | i - j | \leqslant i + j < p - 1</math>
 
  
::<math>2 < i + j < p - 1</math>
+
dla dowolnej liczby całkowitej dodatniej <math>n</math>. Zatem modulo <math>2</math> jest
  
 +
::<math>{\small\frac{a^p - 1}{a - 1}} \equiv R_2 (a) \cdot (p - 1) + 1 \equiv 1 \pmod 2</math>
  
Ponieważ (z definicji) liczba <math>a</math> jest liczbą kwadratową modulo <math>p</math>, jeżeli kongruencja
+
::<math>{\small\frac{a^p + 1}{a + 1}} \equiv 1 \pmod 2</math>
  
::<math>x^2 \equiv a \pmod{p}</math>
+
Co oznacza, że
  
ma rozwiązanie, to liczba kwadratowa modulo <math>p</math> musi przystawać do pewnego kwadratu modulo <math>p</math>.
+
::<math>m = {\small\frac{a^p - 1}{a - 1}} \cdot {\small\frac{a^p + 1}{a + 1}} \equiv 1 \pmod 2</math>
  
Wynika stąd, że różnych liczb kwadratowych modulo <math>p</math> jest tyle samo, co kwadratów <math>1^2, 2^2, \ldots, \left( {\small\frac{p - 1}{2}} \right)^2</math>. Czyli jest ich dokładnie <math>{\small\frac{p - 1}{2}}</math>. Pozostałe liczby w&nbsp;zbiorze <math>\{ 1, 2, \ldots, p - 1 \}</math> to liczby niekwadratowe modulo <math>p</math> i&nbsp;jest ich również <math>{\small\frac{p - 1}{2}}</math>. Co należało pokazać.<br/>
+
Czyli <math>m</math> jest '''złożoną liczbą nieparzystą'''. Pozostaje pokazać, że <math>a^{m - 1} \equiv 1 \pmod m</math>.
&#9633;
 
{{\Spoiler}}
 
  
  
 +
Z twierdzenia Fermata wiemy, że
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J25 (kryterium Eulera, 1748)</span><br/>
+
::<math>a^p - 1 \equiv a - 1 \pmod p</math>
Niech <math>p</math> będzie liczbą pierwszą nieparzystą i <math>p \nmid a</math>. Modulo <math>p</math> mamy
 
  
::{| border="0"
+
Ponieważ <math>(a - 1) | (a^p - 1)</math>, to możemy napisać
|-style=height:2.5em
 
| &#9679;&nbsp;&nbsp;&nbsp; || liczba <math>a</math> jest liczbą kwadratową modulo <math>p</math> wtedy i&nbsp;tylko wtedy, gdy <math>a^{(p - 1) / 2} \equiv 1 \pmod{p}</math>
 
|-style=height:2.5em
 
| &#9679;&nbsp;&nbsp;&nbsp; || liczba <math>a</math> jest liczbą niekwadratową modulo <math>p</math> wtedy i&nbsp;tylko wtedy, gdy <math>a^{(p - 1) / 2} \equiv - 1 \pmod{p}</math>
 
|}
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
+
::<math>(a - 1) \cdot \left( {\small\frac{a^p - 1}{a - 1}} - 1 \right) \equiv 0 \pmod p</math>
  
'''Punkt 1.'''
+
Z założenia <math>p \nmid (a - 1)</math>, zatem liczba pierwsza <math>p</math> musi dzielić <math>{\small\frac{a^p - 1}{a - 1}} - 1</math> i&nbsp;otrzymujemy
  
Niech <math>Q \subset \{ 1, 2, \ldots, p - 1 \}</math> będzie zbiorem wszystkich liczb kwadratowych modulo <math>p</math>, a <math>S \subset \{ 1, 2, \ldots, p - 1 \}</math> będzie zbiorem wszystkich rozwiązań kongruencji
+
::<math>{\small\frac{a^p - 1}{a - 1}} \equiv 1 \pmod p</math>
  
::<math>x^{(p - 1) / 2} \equiv 1 \pmod{p}</math>
+
Postępując analogicznie jak wyżej, dostajemy
  
Zauważmy, że
+
::<math>a^p + 1 \equiv a + 1 \pmod p</math>
  
::{| border=1 style="border-collapse: collapse;"
+
::<math>(a + 1) \cdot \left( {\small\frac{a^p + 1}{a + 1}} - 1 \right) \equiv 0 \pmod p</math>
|-style=height:2.5em
 
| &nbsp;&nbsp;&nbsp;'''A'''&nbsp;&nbsp;&nbsp; || &nbsp;&nbsp;&nbsp;<math>| Q | = {\small\frac{p - 1}{2}}</math> || &nbsp;&nbsp;&nbsp;zobacz J24
 
|-style=height:2.5em
 
| &nbsp;&nbsp;&nbsp;'''B'''&nbsp;&nbsp;&nbsp; || &nbsp;&nbsp;&nbsp;<math>| S | \leqslant {\small\frac{p - 1}{2}}</math> || &nbsp;&nbsp;&nbsp;zobacz twierdzenie Lagrange'a J13
 
|-style=height:2.5em
 
| &nbsp;&nbsp;&nbsp;'''C'''&nbsp;&nbsp;&nbsp; || &nbsp;&nbsp;&nbsp;jeżeli <math>a \in Q</math>, to <math>a \in S \qquad </math> || &nbsp;&nbsp;&nbsp;wynika z&nbsp;ciągu implikacji:<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<math>a \in Q \qquad \Longrightarrow \qquad a \equiv k^2 \pmod{p}</math><br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<math>a \equiv k^2 \pmod{p} \qquad \Longrightarrow \qquad a^{(p - 1) / 2} \equiv (k^2)^{(p - 1) / 2} \equiv k^{p - 1} \equiv 1 \pmod{p}</math>&nbsp;&nbsp;&nbsp;<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<math>a^{(p - 1) / 2} \equiv 1 \pmod{p} \qquad \Longrightarrow \qquad a \in S</math>
 
|-style=height:2.5em
 
| &nbsp;&nbsp;&nbsp;'''D'''&nbsp;&nbsp;&nbsp; || &nbsp;&nbsp;&nbsp;<math>Q \subseteq S</math> || &nbsp;&nbsp;&nbsp;z punktu '''C''' wynika, że '''każdy''' element zbioru <math>Q</math> należy do zbioru <math>S</math>
 
|}
 
  
 +
::<math>{\small\frac{a^p + 1}{a + 1}} \equiv 1 \pmod p</math>
  
Łącząc rezultaty z&nbsp;tabeli, otrzymujemy
+
Wynika stąd, że <math>m \equiv 1 \pmod p</math>.
  
::<math>{\small\frac{p - 1}{2}} = | Q | \leqslant | S | \leqslant {\small\frac{p - 1}{2}}</math>
+
Zbierając mamy <math>2| (m - 1)</math> i <math>p| (m - 1)</math>, zatem <math>2 p| (m - 1)</math>, czyli
  
Skąd łatwo widzimy, że
+
::<math>m = {\small\frac{a^{2 p} - 1}{a^2 - 1}} \equiv 1 \pmod{2 p}</math>
  
::<math>| Q | = | S | = {\small\frac{p - 1}{2}}</math>
+
Oznacza to, że <math>m = 1 + 2 k p</math> dla pewnej liczby całkowitej <math>k > 0</math>.
  
Ponieważ <math>Q \subseteq S</math>, a&nbsp;zbiory <math>Q</math> i <math>S</math> są równoliczne, to zbiory te są równe (zobacz J26). Prostą konsekwencją równości zbiorów <math>Q</math> i <math>S</math> jest stwierdzenie
 
  
::{| border=0 style="background: #EEEEEE;"
+
Zauważmy teraz, że z&nbsp;definicji liczby <math>m</math> mamy <math>(a^2 - 1) m = a^{2 p} - 1</math>. Rozpatrując to równanie modulo <math>m</math>, otrzymujemy
|-style=height:2.0em
 
|&nbsp;&nbsp;&nbsp;liczba <math>a</math> jest liczbą kwadratową modulo <math>p</math> wtedy i&nbsp;tylko wtedy, gdy <math>a^{(p - 1) / 2} \equiv 1 \pmod{p}</math>&nbsp;&nbsp;&nbsp;
 
|}
 
  
Co kończy dowód punktu pierwszego.
+
::<math>a^{2 p} \equiv 1 \pmod m</math>
  
'''Punkt 2.'''
+
Zatem modulo <math>m</math> jest
  
Z udowodnionego już punktu pierwszego wynika<ref name="logic1"/>, że
+
::<math>a^{m - 1} = a^{2 k p} = (a^{2 p})^k \equiv 1^k \equiv 1 \pmod m</math>
  
::{| border=0 style="background: #EEEEEE;"
+
Ponieważ dowolna liczba pierwsza <math>p > a^2 - 1</math> nie dzieli <math>a^2 - 1</math>, to dla każdego <math>a \geqslant 2</math> istnieje nieskończenie wiele liczb, które są PSP(<math>a</math>). Co należało pokazać.<br/>
|-style=height:2.0em
 
|&nbsp;&nbsp;&nbsp;liczba <math>a</math> jest liczbą niekwadratową modulo <math>p</math> wtedy i&nbsp;tylko wtedy, gdy <math>a^{(p - 1) / 2} \not\equiv 1 \pmod{p}</math>&nbsp;&nbsp;&nbsp;
 
|}
 
 
 
Z twierdzenia Fermata
 
 
 
::<math>a^{p - 1} - 1 = (a^{(p - 1) / 2} - 1) \cdot (a^{(p - 1) / 2} + 1) \equiv 0 \pmod{p}</math>
 
 
 
wynika natychmiast, że jeżeli <math>a^{(p - 1) / 2} - 1 \not\equiv 0 \pmod{p}</math>, to musi być
 
 
 
::<math>a^{(p - 1) / 2} + 1 \equiv 0 \pmod{p}</math>
 
 
 
Fakt ten pozwala sformułować uzyskaną równoważność bardziej precyzyjnie
 
 
 
::{| border=0 style="background: #EEEEEE;"
 
|-style=height:2.0em
 
|&nbsp;&nbsp;&nbsp;liczba <math>a</math> jest liczbą niekwadratową modulo <math>p</math> wtedy i&nbsp;tylko wtedy, gdy <math>a^{(p - 1) / 2} \equiv - 1 \pmod{p}</math>&nbsp;&nbsp;&nbsp;
 
|}
 
 
 
Co należało pokazać.<br/>
 
 
&#9633;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
Linia 805: Linia 167:
  
  
<span style="font-size: 110%; font-weight: bold;">Zadanie J26</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Przykład K6</span><br/>
Niech <math>A</math> i <math>B</math> będą zbiorami skończonymi. Pokazać, że jeżeli <math>A \subseteq B \;\; \text{i} \;\; | A | = | B |</math>, to <math>\; A = B</math>.
+
Z dowodu twierdzenia K5 wynika, że jeżeli liczba <math>p</math> jest liczbą pierwszą nieparzystą i <math>p \nmid (a^2 - 1)</math>, to liczba <math>m = {\small\frac{a^{2 p} - 1}{a^2 - 1}}</math> jest PSP(<math>a</math>). Poniżej przedstawiamy przykłady takich liczb, dla kolejnych liczb pierwszych nieparzystych <math>p</math> takich, że <math>p \nmid (a^2 - 1)</math>.
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
+
<span style="font-size: 90%; color:black;">'''for'''(a=2, 5, s=1; d=a^2-1; '''forprime'''(p=3, 50, '''if'''( d%p == 0, '''next'''() ); m=(a^(2*p)-1)/d; '''print'''("a= ", a, "  m= ", m); s++; '''if'''( s>6, '''break'''() ) )) </span>
Ponieważ zbiór <math>A</math> jest podzbiorem zbioru <math>B</math>, to zbiór <math>B</math> można przedstawić w&nbsp;postaci sumy zbiorów <math>A</math> i <math>C</math> takich, że żaden element zbioru <math>C</math> nie jest elementem zbioru <math>A</math>. Zatem
 
 
 
::<math>B = A \cup C \qquad \text{i} \qquad A \cap C = \varnothing</math>
 
 
 
Ponieważ z&nbsp;założenia zbiory <math>A</math> i <math>C</math> są rozłączne, to wiemy, że
 
  
::<math>| A \cup C | = | A | + | C |</math>
+
::{| class="wikitable plainlinks" style="font-size: 100%; text-align: right; margin-right: auto;"
 
+
! <math>\boldsymbol{a}</math> !! <math>\boldsymbol{2}</math> !! <math>\boldsymbol{3}</math> !! <math>\boldsymbol{4}</math> !! <math>\boldsymbol{5}</math>
Czyli
 
 
 
::<math>| B | = | A \cup C | = | A | + | C |</math>
 
 
 
Skąd wynika, że <math>| C | = 0</math>, zatem zbiór <math>C</math> jest zbiorem pustym i&nbsp;otrzymujemy natychmiast <math>B = A</math>. Co należało pokazać.
 
 
 
 
 
<span style="border-bottom-style: double;">Uwaga (przypadek zbiorów skończonych)</span><br/>
 
Najczęściej prawdziwe jest jedynie oszacowanie <math>| A \cup C | \leqslant | A | + | C |</math>, bo niektóre elementy mogą zostać policzone dwa razy. Elementy liczone dwukrotnie to te, które należą do iloczynu zbiorów <math>| A |</math> i <math>| C |</math>, zatem od sumy <math>| A | + | C |</math> musimy odjąć liczbę elementów iloczynu zbiorów <math>| A |</math> i <math>| C |</math>. Co daje ogólny wzór<ref name="sumazbiorow"/>
 
 
 
::<math>| A \cup C | = | A | + | C | - | A \cap C |</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
 
 
 
 
== Symbol Legendre'a ==
 
 
 
<span style="font-size: 110%; font-weight: bold;">Definicja J27</span><br/>
 
Niech <math>p</math> będzie liczbą pierwszą nieparzystą i <math>a \in \mathbb{Z}</math>. Symbolem Legendre'a<ref name="legendre1"/> nazywamy funkcję <math>a</math> i <math>p</math> zdefiniowaną następująco
 
 
 
::<math>\left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} =
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } \, a \, \text{ jest liczbą kwadratową modulo } \, p \,  \text{ oraz } \, p \nmid a \\
 
      - 1 & \text{gdy } \, a \, \text{ jest liczbą niekwadratową modulo } \, p \\
 
\;\;\: 0 & \text{gdy } \, p \, | \, a
 
\end{cases}</math>
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J28</span><br/>
 
Powyższa definicja pozwala nam zapisać kryterium Eulera w&nbsp;zwartej formie, która obejmuje również przypadek, gdy <math>p \, | \, a</math>
 
 
 
::<math>a^{(p - 1) / 2} \equiv \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \pmod{p}</math>
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J29*</span><br/>
 
Niech <math>a, b \in \mathbb{Z}</math> oraz <math>p, q</math> będą nieparzystymi liczbami pierwszymi. Symbol Legendre'a ma następujące właściwości
 
 
 
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: left; margin-right: auto;"
 
|-
 
| &nbsp;&nbsp;1.&nbsp;&nbsp; || <math>\left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \,\, = \,\, 0 \quad \Longleftrightarrow \quad \gcd (a, p) > 1</math>
 
|-
 
| &nbsp;&nbsp;2.&nbsp;&nbsp; || <math>a \equiv b \pmod p \quad \Longrightarrow \quad \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{b}{p}} \right)_{\small{\!\! L}}</math>
 
 
|-
 
|-
| &nbsp;&nbsp;3.&nbsp;&nbsp; || <math>\left( {\small\frac{a b}{p}} \right)_{\small{\!\! L}} \,\, = \,\, \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \cdot  \left( {\small\frac{b}{p}} \right)_{\small{\!\! L}}</math>
+
|   || <math>341</math> || <math>91</math> || <math>17895697</math> || <math>406901</math>
 
|-
 
|-
| &nbsp;&nbsp;4.&nbsp;&nbsp; || <math>a^{(p - 1) / 2} \equiv \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \pmod{p}</math>
+
|   || <math>5461</math> || <math>7381</math> || <math>1172812402961</math> || <math>254313151</math>
 
|-
 
|-
| &nbsp;&nbsp;5.&nbsp;&nbsp; || <math>\left( {\small\frac{1}{p}} \right)_{\small{\!\! L}} \,\, = \,\, 1</math>
+
|   || <math>1398101</math> || <math>597871</math> || <math>300239975158033</math> || <math>99341074625651</math>
 
|-
 
|-
| &nbsp;&nbsp;6.&nbsp;&nbsp; || <math>\left( {\small\frac{- 1}{p}} \right)_{\small{\!\! L}} \,\, = \,\, (- 1)^{\tfrac{p - 1}{2}} \,\, = \,\,
+
|   || <math>22369621</math> || <math>3922632451</math> || <math>19676527011956855057</math> || <math>62088171641031901</math>
  \begin{cases}
 
\;\;\: 1 & \text{gdy } p \equiv 1 \pmod{4} \\
 
      - 1 & \text{gdy } p \equiv 3 \pmod{4}
 
  \end{cases}</math>
 
 
|-
 
|-
| &nbsp;&nbsp;7.&nbsp;&nbsp; || <math>\left( {\small\frac{2}{p}} \right)_{\small{\!\! L}} \,\, = \,\, (- 1)^{\tfrac{p^2 - 1}{8}} \,\, = \,\,
+
|   || <math>5726623061</math> || <math>317733228541</math> || <math>5037190915060954894609</math> || <math>24253192047278086344401</math>
  \begin{cases}
 
\;\;\: 1 & \text{gdy } p \equiv 1, 7 \pmod{8} \\
 
      - 1 & \text{gdy } p \equiv 3, 5 \pmod{8}
 
  \end{cases}</math>
 
 
|-
 
|-
| &nbsp;&nbsp;8.&nbsp;&nbsp; || <math>\left( {\small\frac{- 2}{p}} \right)_{\small{\!\! L}} \,\, = \,\, (- 1)^{\tfrac{(p - 1)(p - 3)}{8}} \,\, = \,\,
+
|   || <math>91625968981</math> || <math>2084647712458321</math> || <math>330117343809434739973099793</math> || <math>15158245029548803965250651</math>
  \begin{cases}
 
\;\;\: 1 & \text{gdy } p \equiv 1, 3 \pmod{8} \\
 
      - 1 & \text{gdy } p \equiv 5, 7 \pmod{8}
 
  \end{cases}</math>
 
|-
 
| &nbsp;&nbsp;9.&nbsp;&nbsp; || <math>\left( {\small\frac{p}{q}} \right)_{\small{\!\! L}} \,\, = \,\, \left( {\small\frac{q}{p}} \right)_{\small{\!\! L}} \cdot (-1)^{\tfrac{q - 1}{2} \cdot \tfrac{p - 1}{2}} \,\, = \,\, \left( {\small\frac{q}{p}} \right)_{\small{\!\! L}} \cdot
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } p \equiv 1 \pmod{4} \;\;\; \text{lub} \;\;\; q \equiv 1 \pmod{4} \\
 
      - 1 & \text{gdy } p \equiv q \equiv 3 \pmod{4}
 
  \end{cases}</math>
 
 
|}
 
|}
  
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Uwaga K7</span><br/>
 +
Wykorzystując funkcję potęgowania modulo, możemy napisać prosty program do testowania pierwszości liczb w&nbsp;oparciu o&nbsp;twierdzenie Fermata.
  
 +
<span style="font-size: 90%; color:black;">isPrimeOr<span style="background-color: #fee481;">PSP</span>(m, a) =
 +
{
 +
'''if'''( modPower(a, m-1, m) == 1, '''return'''(1), '''return'''(0) );
 +
}</span>
  
== Symbol Jacobiego ==
 
 
<span style="font-size: 110%; font-weight: bold;">Definicja J30</span><br/>
 
Niech liczby <math>a \in \mathbb{Z}</math> i <math>m \in \mathbb{Z}_+</math> będą względnie pierwsze. Powiemy, że liczba <math>a</math> jest liczbą kwadratową modulo <math>m</math>, jeżeli kongruencja
 
 
::<math>x^2 \equiv a \pmod{m}</math>
 
 
ma rozwiązanie, czyli istnieje taka liczba <math>k \in \mathbb{Z}</math>, że <math>m \, | \, (k^2 - a)</math>.
 
 
Powiemy, że liczba <math>a</math> jest liczbą niekwadratową modulo <math>m</math>, jeżeli kongruencja
 
 
::<math>x^2 \equiv a \pmod{m}</math>
 
 
nie ma rozwiązania.
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J31</span><br/>
 
Ponieważ często można spotkać definicję liczb kwadratowych i&nbsp;niekwadratowych modulo <math>m</math>, w&nbsp;której warunek <math>\gcd (a, m) = 1</math> zostaje pominięty, to Czytelnik powinien zawsze upewnić się, jaka definicja jest stosowana. Najczęściej w&nbsp;takim przypadku liczba <math>0</math> nie jest uznawana za liczbę kwadratową modulo <math>m</math>.
 
 
Przykładowo:
 
 
::<math>\left\{ 0^2, 1^2, 2^2, 3^2, 4^2, 5^2, 6^2, 7^2, 8^2, 9^2 \right\} \equiv \left\{ 0, 1, 4, 9, 6, 5, 6, 9, 4, 1 \right\} \pmod{10}</math>
 
 
Liczby kwadratowe modulo <math>10</math> to <math>\left\{ 1, 9 \right\}</math>, a&nbsp;niekwadratowe to <math>\left\{ 3, 7 \right\}</math>. Liczby <math>\left\{ 0, 2, 4, 5, 6, 8 \right\}</math> nie są ani liczbami kwadratowymi, ani liczbami niekwadratowymi modulo <math>10</math>.
 
 
Jeśli odrzucimy warunek <math>\gcd (a, m) = 1</math>, to liczbami kwadratowymi modulo <math>10</math> będą <math>\left\{ 0, 1, 4, 5, 6, 9 \right\}</math>, a&nbsp;niekwadratowymi <math>\left\{ 2, 3, 7, 8 \right\}</math>.
 
 
Inny przykład. Niech <math>m = 210 = 2 \cdot 3 \cdot 5 \cdot 7</math>. W&nbsp;zależności od przyjętej definicji najmniejszą liczbą niekwadratową modulo <math>m</math> będzie albo <math>11</math>, albo <math>2</math>.
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J32</span><br/>
 
Niech liczby <math>m, n \in \mathbb{Z}_+</math> i <math>\gcd (m, n) = 1</math>. Pokazać, że liczba <math>a \in \mathbb{Z}</math> jest liczbą kwadratową modulo <math>m n</math> wtedy i&nbsp;tylko wtedy, gdy jest liczbą kwadratową modulo <math>m</math> i&nbsp;modulo <math>n</math>.
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Niech <math>W(x) = x^2 - a</math>. Zauważmy, że liczba <math>a</math> jest liczbą kwadratową modulo <math>m</math> wtedy i&nbsp;tylko wtedy, gdy kongruencja <math>W(x) \equiv 0 \!\! \pmod{m}</math> ma rozwiązanie. Dalsza analiza problemu przebiega dokładnie tak, jak to zostało przedstawione w&nbsp;uwadze J11.<br/>
 
&#9633;
 
{{\Spoiler}}
 
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Przykład K8</span><br/>
 +
Poniższa tabela zawiera najmniejsze liczby pseudopierwsze Fermata dla podstaw <math>a</math> od <math>2</math> do <math>15</math>
  
<span style="font-size: 110%; font-weight: bold;">Definicja J33</span><br/>
+
<span style="font-size: 90%; color:black;">'''for'''(a=2, 15, s=1; '''forstep'''(m=1, 2000, 2, '''if'''( isPrimeOr<span style="background-color: #fee481;">PSP</span>(m, a) &&  !'''isprime'''(m), '''print'''("a=", a, "  m=", m); s++ ); '''if'''( s>5, '''break'''() ) ))</span>
Symbol Jacobiego<ref name="jacobi1"/> <math>\left( {\small\frac{a}{n}} \right)_{\small{\!\! J}}</math> jest uogólnieniem symbolu Legendre'a <math>\left( {\small\frac{a}{p}} \right)_{\small{\!\! L}}</math> dla dodatnich liczb nieparzystych.
 
Niech <math>n = \prod_i p_i^{\alpha_i}</math> będzie rozkładem liczby <math>n</math> na czynniki pierwsze, wtedy
 
  
::<math>\left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} = \prod_i \left( {\small\frac{a}{p_i}} \right)_{\small{\!\! L}}^{\!\! \alpha_i}</math>
+
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: right; margin-right: auto;"
 
+
! &nbsp;&nbsp;<math>\boldsymbol{a}</math>&nbsp;&nbsp; !! <math>\boldsymbol{2}</math> !! <math>\boldsymbol{3}</math> !! <math>\boldsymbol{4}</math> !! <math>\boldsymbol{5}</math> !! <math>\boldsymbol{6}</math> !! <math>\boldsymbol{7}</math> !! <math>\boldsymbol{8}</math> !! <math>\boldsymbol{9}</math> !! <math>\boldsymbol{10}</math> !! <math>\boldsymbol{11}</math> !! <math>\boldsymbol{12}</math> !! <math>\boldsymbol{13}</math> !! <math>\boldsymbol{14}</math> !! <math>\boldsymbol{15}</math>
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J34</span><br/>
 
Zauważmy, że w&nbsp;przypadku gdy <math>n = 1</math>, po prawej stronie mamy „pusty” iloczyn (bez jakiegokolwiek czynnika). Podobnie jak „pustej” sumie przypisujemy wartość zero, tak „pustemu” iloczynowi przypisujemy wartość jeden. Zatem dla dowolnego <math>a \in \mathbb{Z}</math> jest <math>\left( {\small\frac{a}{1}} \right)_{\small{\!\! J}} = 1</math>.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J35*</span><br/>
 
Niech <math>a, b \in \mathbb{Z}</math> oraz <math>m, n \in \mathbb{Z}_+</math> i <math>m, n</math> będą liczbami nieparzystymi. Symbol Jacobiego ma następujące właściwości
 
 
 
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: left; margin-right: auto;"
 
 
|-
 
|-
| &nbsp;&nbsp;1.&nbsp;&nbsp; || <math>\left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} \,\, = \,\, 0 \quad \Longleftrightarrow \quad \gcd (a, n) > 1</math>
+
|   || <math>341</math> || <math>91</math> || <math>15</math> || <math>217</math> || <math>35</math> || <math>25</math> || <math>9</math> || <math>91</math> || <math>9</math> || <math>15</math> || <math>65</math> || <math>21</math> || <math>15</math> || <math>341</math>
 
|-
 
|-
| &nbsp;&nbsp;2.&nbsp;&nbsp; || <math>a \equiv b \pmod n \quad \Longrightarrow \quad \left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} = \left( {\small\frac{b}{n}} \right)_{\small{\!\! J}}</math>
+
|   || <math>561</math> || <math>121</math> || <math>85</math> || <math>561</math> || <math>185</math> || <math>325</math> || <math>21</math> || <math>121</math> || <math>33</math> || <math>133</math> || <math>91</math> || <math>85</math> || <math>39</math> || <math>1477</math>
 
|-
 
|-
| &nbsp;&nbsp;3.&nbsp;&nbsp; || <math>\left( {\small\frac{a b}{n}} \right)_{\small{\!\! J}} \,\, = \,\, \left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} \cdot  \left( {\small\frac{b}{n}} \right)_{\small{\!\! J}}</math>
+
|   || <math>645</math> || <math>671</math> || <math>91</math> || <math>781</math> || <math>217</math> || <math>561</math> || <math>45</math> || <math>205</math> || <math>91</math> || <math>259</math> || <math>133</math> || <math>105</math> || <math>65</math> || <math>1541</math>
 
|-
 
|-
| &nbsp;&nbsp;4.&nbsp;&nbsp; || <math>\left( {\small\frac{a}{m n}} \right)_{\small{\!\! J}} \,\, = \,\, \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} \cdot  \left( {\small\frac{a}{n}} \right)_{\small{\!\! J}}</math>
+
|   || <math>1105</math> || <math>703</math> || <math>341</math> || <math>1541</math> || <math>301</math> || <math>703</math> || <math>63</math> || <math>511</math> || <math>99</math> || <math>305</math> || <math>143</math> || <math>231</math> || <math>195</math> || <math>1687</math>
 
|-
 
|-
| &nbsp;&nbsp;5.&nbsp;&nbsp; || <math>\left( {\small\frac{1}{n}} \right)_{\small{\!\! J}} \,\, = \,\, 1</math>
+
|   || <math>1387</math> || <math>949</math> || <math>435</math> || <math>1729</math> || <math>481</math> || <math>817</math> || <math>65</math> || <math>671</math> || <math>259</math> || <math>481</math> || <math>145</math> || <math>357</math> || <math>481</math> || <math>1729</math>
|-
 
| &nbsp;&nbsp;6.&nbsp;&nbsp; || <math>\left( {\small\frac{- 1}{n}} \right)_{\small{\!\! J}} \,\, = \,\, (- 1)^{\tfrac{n - 1}{2}} \,\, = \,\,
 
  \begin{cases}
 
\;\;\: 1 & \text{gdy } n \equiv 1 \pmod{4} \\
 
      - 1 & \text{gdy } n \equiv 3 \pmod{4}
 
  \end{cases}</math>
 
|-
 
| &nbsp;&nbsp;7.&nbsp;&nbsp; || <math>\left( {\small\frac{2}{n}} \right)_{\small{\!\! J}} \,\, = \,\, (- 1)^{\tfrac{n^2 - 1}{8}} \,\, = \,\,
 
  \begin{cases}
 
\;\;\: 1 & \text{gdy } n \equiv 1, 7 \pmod{8} \\
 
      - 1 & \text{gdy } n \equiv 3, 5 \pmod{8}
 
  \end{cases}</math>
 
|-
 
| &nbsp;&nbsp;8.&nbsp;&nbsp; || <math>\left( {\small\frac{- 2}{n}} \right)_{\small{\!\! J}} \,\, = \,\, (- 1)^{\tfrac{(n - 1)(n - 3)}{8}} \,\, = \,\,
 
  \begin{cases}
 
\;\;\: 1 & \text{gdy } n \equiv 1, 3 \pmod{8} \\
 
      - 1 & \text{gdy } n \equiv 5, 7 \pmod{8}
 
  \end{cases}</math>
 
|-
 
| &nbsp;&nbsp;9.&nbsp;&nbsp; || <math>\left( {\small\frac{m}{n}} \right)_{\small{\!\! J}} \,\, = \,\, \left( {\small\frac{n}{m}} \right)_{\small{\!\! J}} \cdot (-1)^{\tfrac{n - 1}{2} \cdot \tfrac{m - 1}{2}} \,\, = \,\, \left( {\small\frac{n}{m}} \right)_{\small{\!\! J}} \cdot
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } m \equiv 1 \pmod{4} \;\;\; \text{lub} \;\;\; n \equiv 1 \pmod{4} \\
 
      - 1 & \text{gdy } m \equiv n \equiv 3 \pmod{4}
 
  \end{cases}</math>
 
 
|}
 
|}
  
  
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J36</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Przykład K9</span><br/>
Zauważmy, że poza zmienionym założeniem tabela z&nbsp;powyższego twierdzenia i&nbsp;tabela z&nbsp;twierdzenia J29 różnią się jedynie punktem czwartym. Oczywiście jest to tylko podobieństwo formalne – symbol Legendre'a i&nbsp;symbol Jacobiego są różnymi funkcjami.
+
Tabela pokazuje ilość liczb pseudopierwszych Fermata dla podstaw <math>a</math> od <math>2</math> do <math>15</math>
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J37</span><br/>
 
Zauważmy, że w&nbsp;przypadku, gdy <math>m</math> jest liczbą nieparzystą
 
 
 
:* jeżeli <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1</math>, to <math>a</math> jest liczbą niekwadratową modulo <math>m</math>
 
:* jeżeli <math>a</math> jest liczbą niekwadratową modulo <math>m</math>, to '''nie musi być''' <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1</math>
 
:* jeżeli <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = + 1</math>, to <math>a</math> '''nie musi być''' liczbą kwadratową modulo <math>m</math>
 
:* jeżeli <math>a</math> jest liczbą kwadratową modulo <math>m</math>, to jest <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = + 1</math>
 
 
 
Przykład: jeżeli <math>\gcd (a, m) = 1</math>, to <math>\left( {\small\frac{a}{m^2}} \right)_{\small{\!\! J}} = \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}}^2 = + 1</math>, ale <math>a</math> może być liczbą niekwadratową modulo <math>m^2</math>.
 
 
 
Modulo <math>9</math> liczbami niekwadratowymi są: <math>2, 5, 8</math>. Modulo <math>25</math> liczbami niekwadratowymi są: <math>2, 3, 7, 8, 12, 13, 17, 18, 22, 23</math>.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J38</span><br/>
 
Wszystkie liczby kwadratowe i&nbsp;niekwadratowe modulo <math>m</math> można łatwo znaleźć, wykorzystując prosty program:
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Pokaż kod|Hide=Ukryj kod}}
 
<span style="font-size: 90%; color:black;">QRandQNR(m) =
 
{
 
'''local'''(k, S, V);
 
S = [];
 
V = [];
 
'''for'''(k = 1,  m - 1, '''if'''( '''gcd'''(k, m) > 1, '''next'''() ); S = '''concat'''(S, k));
 
S = '''Set'''(S); \\ zbiór liczb względnie pierwszych z m
 
'''for'''(k = 1,  m - 1, '''if'''( '''gcd'''(k, m) > 1, '''next'''() ); V = '''concat'''(V, k^2 % m));
 
V = '''Set'''(V); \\ zbiór liczb kwadratowych modulo m
 
'''print'''("QR: ", V);
 
'''print'''("QNR: ", '''setminus'''(S, V)); \\ różnica zbiorów S i V
 
}</span>
 
<br/>
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J39</span><br/>
 
Pokazać, że
 
 
 
::<math>\left( {\small\frac{- 3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{- 12}{m}} \right)_{\small{\!\! J}} =
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } m = 6 k + 1 \\
 
\;\;\: 0 & \text{gdy } m = 6 k + 3 \\
 
      - 1 & \text{gdy } m = 6 k + 5
 
\end{cases}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Zauważmy, że
 
 
 
::<math>\left( {\small\frac{- 3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{- 1}{m}} \right)_{\small{\!\! J}} \cdot \left( {\small\frac{3}{m}} \right)_{\small{\!\! J}}</math>
 
 
 
::::<math>\; = (- 1)^{\tfrac{m - 1}{2}} \cdot (- 1)^{\tfrac{m - 1}{2} \cdot \tfrac{3 - 1}{2}} \cdot \left( {\small\frac{m}{3}} \right)_{\small{\!\! J}}</math>
 
 
 
::::<math>\; = (- 1)^{m - 1} \cdot \left( {\small\frac{m}{3}} \right)_{\small{\!\! J}}</math>
 
 
 
::::<math>\; = \left( {\small\frac{m}{3}} \right)_{\small{\!\! J}}</math>
 
 
 
bo <math>m</math> jest liczbą nieparzystą.
 
 
 
Rozważmy liczby nieparzyste <math>m</math> postaci <math>6 k + r</math>, gdzie <math>r = 1, 3, 5</math>. Mamy
 
 
 
::<math>\left( {\small\frac{- 3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{m}{3}} \right)_{\small{\!\! J}}</math>
 
 
 
::::<math>\; = \left( {\small\frac{6 k + r}{3}} \right)_{\small{\!\! J}}</math>
 
 
 
::::<math>\; = \left( {\small\frac{r}{3}} \right)_{\small{\!\! J}}</math>
 
 
 
::::<math>\; =
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } r = 1 \\
 
\;\;\: 0 & \text{gdy } r = 3 \\
 
      - 1 & \text{gdy } r = 5
 
\end{cases}</math>
 
 
 
bo odpowiednio dla <math>r = 1, 3, 5</math> jest
 
 
 
::<math>\left( {\small\frac{1}{3}} \right)_{\small{\!\! J}} = 1</math>
 
 
 
::<math>\left( {\small\frac{3}{3}} \right)_{\small{\!\! J}} = 0</math>
 
 
 
::<math>\left( {\small\frac{5}{3}} \right)_{\small{\!\! J}} = \left( {\small\frac{2}{3}} \right)_{\small{\!\! J}} = (- 1)^{\tfrac{9 - 1}{8}} = - 1</math>
 
 
 
Łatwo zauważamy, że
 
 
 
::<math>\left( {\small\frac{- 12}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{- 3 \cdot 2^2}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{- 3}{m}} \right)_{\small{\!\! J}} \cdot \left( {\small\frac{2}{m}} \right)_{\small{\!\! J}}^{\! 2} = \left( {\small\frac{- 3}{m}} \right)_{\small{\!\! J}}</math>
 
 
 
Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J40</span><br/>
 
Pokazać, że
 
 
 
::<math>\left( {\small\frac{3}{m}} \right)_{\small{\!\! J}} =
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } m = 12 k \pm 1 \\
 
\;\;\: 0 & \text{gdy } m = 12 k \pm 3 \\
 
      - 1 & \text{gdy } m = 12 k \pm 5
 
\end{cases}</math>
 
 
 
 
 
::<math>\left( {\small\frac{5}{m}} \right)_{\small{\!\! J}} =
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } m = 10 k \pm 1 \\
 
\;\;\: 0 & \text{gdy } m = 10 k + 5 \\
 
      - 1 & \text{gdy } m = 10 k \pm 3
 
\end{cases}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
 
 
'''Punkt 1.'''
 
 
 
Przy wyliczaniu symboli Legendre'a i&nbsp;Jacobiego, zawsze warto sprawdzić, czy da się ustalić przystawanie liczb modulo <math>4</math>. W&nbsp;tym przypadku mamy
 
 
 
::<math>3 \equiv 3 \pmod{4}</math>
 
  
i odpowiednio dla różnych postaci liczby <math>m</math> jest
+
<span style="font-size: 90%; color:black;">'''for'''(a=2, 15, s=0; '''forstep'''(k=1, 10^6, 2, '''if'''( isPrimeOr<span style="background-color: #fee481;">PSP</span>(k, a)  &&  !'''isprime'''(k), s++ )); '''print'''("a= ", a, "  ", s))</span>
  
::<math>m = 12 k + 1 \equiv 1 \pmod{4}</math>
+
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: right; margin-right: auto;"
 
+
! <math>\boldsymbol{a}</math> !! <math>\boldsymbol{2}</math> !! <math>\boldsymbol{3}</math> !! <math>\boldsymbol{4}</math> !! <math>\boldsymbol{5}</math> !! <math>\boldsymbol{6}</math> !! <math>\boldsymbol{7}</math> !! <math>\boldsymbol{8}</math> !! <math>\boldsymbol{9}</math> !! <math>\boldsymbol{10}</math> !! <math>\boldsymbol{11}</math> !! <math>\boldsymbol{12}</math> !! <math>\boldsymbol{13}</math> !! <math>\boldsymbol{14}</math> !! <math>\boldsymbol{15}</math>
::<math>m = 12 k + 5 \equiv 1 \pmod{4}</math>
 
 
 
::<math>m = 12 k + 7 \equiv 3 \pmod{4}</math>
 
 
 
::<math>m = 12 k + 11 \equiv 3 \pmod{4}</math>
 
 
 
Ułatwi nam to znacznie wykonywanie przekształceń (zobacz J35 p.9)
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{12 k + 1}} \right)_{\small{\!\! J}} = (+ 1) \cdot \left( {\small\frac{12 k + 1}{3}} \right)_{\small{\!\! J}} = \left( {\small\frac{1}{3}} \right)_{\small{\!\! J}} = 1</math>
 
</div>
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{12 k + 5}} \right)_{\small{\!\! J}} = (+ 1) \cdot \left( {\small\frac{12 k + 5}{3}} \right)_{\small{\!\! J}} = \left( {\small\frac{5}{3}} \right)_{\small{\!\! J}} = \left( {\small\frac{2}{3}} \right)_{\small{\!\! J}} = - 1</math>
 
</div>
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{12 k + 7}} \right)_{\small{\!\! J}} = (- 1) \cdot \left( {\small\frac{12 k + 7}{3}} \right)_{\small{\!\! J}} = - \left( {\small\frac{7}{3}} \right)_{\small{\!\! J}} = - \left( {\small\frac{1}{3}} \right)_{\small{\!\! J}} = - 1</math>
 
</div>
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{12 k + 11}} \right)_{\small{\!\! J}} = (- 1) \cdot \left( {\small\frac{12 k + 11}{3}} \right)_{\small{\!\! J}} = - \left( {\small\frac{11}{3}} \right)_{\small{\!\! J}} = - \left( {\small\frac{2}{3}} \right)_{\small{\!\! J}} = 1</math>
 
</div>
 
 
 
'''Punkt 2.'''
 
 
 
Ponieważ <math>5 \equiv 1 \!\! \pmod{4}</math>, to nie ma już znaczenia, czy <math>m \equiv 1 \!\! \pmod{4}</math>, czy też <math>m \equiv 3 \!\! \pmod{4}</math>. Otrzymujemy natychmiast (zobacz J35 p.9)
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{5}{m}} \right)_{\small{\!\! J}} = (+ 1) \cdot \left( {\small\frac{m}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{m}{5}} \right)_{\small{\!\! J}}</math>
 
</div>
 
 
 
Rozważmy liczby nieparzyste <math>m</math> postaci <math>10 k + r</math>, gdzie <math>r = 1, 3, 5, 7, 9</math>. Mamy
 
 
 
::<math>\left( {\small\frac{5}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{m}{5}} \right)_{\small{\!\! J}}</math>
 
 
 
:::<math>\:\, \quad = \left( {\small\frac{10 k + r}{5}} \right)_{\small{\!\! J}}</math>
 
 
 
:::<math>\:\, \quad = \left( {\small\frac{r}{5}} \right)_{\small{\!\! J}}</math>
 
 
 
:::<math>\:\, \quad =
 
\begin{cases}
 
\;\;\: 1 & \text{gdy } r = 1 \\
 
      - 1 & \text{gdy } r = 3 \\
 
\;\;\: 0 & \text{gdy } r = 5 \\
 
      - 1 & \text{gdy } r = 7 \\
 
\;\;\: 1 & \text{gdy } r = 9
 
\end{cases}</math>
 
 
 
bo odpowiednio dla <math>r = 1, 3, 5, 7, 9</math> jest
 
 
 
::<math>\left( {\small\frac{1}{5}} \right)_{\small{\!\! J}} = 1</math>
 
 
 
::<math>\left( {\small\frac{3}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{-2}{5}} \right)_{\small{\!\! J}} = (- 1)^{\tfrac{(5 - 1)(5 - 3)}{8}} = -1</math>
 
 
 
::<math>\left( {\small\frac{5}{5}} \right)_{\small{\!\! J}} = 0</math>
 
 
 
::<math>\left( {\small\frac{7}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{2}{5}} \right)_{\small{\!\! J}} = (- 1)^{\tfrac{25 - 1}{8}} = - 1</math>
 
 
 
::<math>\left( {\small\frac{9}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{5}} \right)_{\small{\!\! J}}^{\! 2} = 1</math>
 
 
 
Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J41</span><br/>
 
Wykorzystując podane w&nbsp;twierdzeniu J35 właściwości symbolu Jacobiego, możemy napisać prostą funkcję w&nbsp;PARI/GP znajdującą jego wartość. Zauważmy, że nie potrzebujemy znać rozkładu liczby <math>n</math> na czynniki pierwsze.
 
 
 
  <span style="font-size: 90%; color:black;">jacobi(a, n) =
 
{
 
'''local'''(r, w);
 
'''if'''( n <= 0 || n % 2 == 0, '''return'''("Error") );
 
a = a % n; \\ korzystamy ze wzoru (a|n) = (b|n), gdy a &equiv; b (mod n)
 
w = 1;
 
'''while'''( a <> 0,
 
        '''while'''( a % 2 == 0, a = a/2; r = n % 8; '''if'''( r == 3 || r == 5, w = -w ) );
 
        \\ usunęliśmy czynnik 2 ze zmiennej a, uwzględniając, że (2|n) = -1, gdy n &equiv; 3,5 (mod 8)
 
        \\ teraz zmienne a oraz n są nieparzyste
 
        r = a; \\ zmienna r tylko przechowuje wartość a
 
        a = n;
 
        n = r;
 
        '''if'''( a % 4 == 3 && n % 4 == 3, w = -w );
 
        \\ zamieniliśmy zmienne, uwzględniając, że (a|n) = - (n|a), gdy a &equiv; n &equiv; 3 (mod 4)
 
        a = a % n;
 
      );
 
'''if'''( n == 1, '''return'''(w), '''return'''(0) ); \\ n jest teraz równe gcd(a, n)
 
}</span>
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J42</span><br/>
 
Jeżeli <math>m</math> jest liczbą pierwszą, to symbol Jacobiego jest symbolem Legendre'a, czyli <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{a}{m}} \right)_{\small{\!\! L}}</math>. Jeżeli <math>m</math> jest liczbą złożoną, to symbol Legendre'a <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! L}}</math> nie istnieje, a&nbsp;symbol Jacobiego <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}}</math> dostarcza jedynie ograniczonych informacji.
 
 
 
W przyszłości symbol Legendre'a / Jacobiego będziemy zapisywali w&nbsp;formie uproszczonej <math>(a \, | \, m)</math> i&nbsp;nie będziemy rozróżniali tych symboli. Interpretacja zapisu jest prosta:
 
 
 
:* jeżeli '''wiemy''', że <math>m</math> jest liczbą pierwszą, to symbol <math>(a \, | \, m)</math> jest symbolem Legendre'a
 
:* jeżeli '''wiemy''', że <math>m</math> jest liczbą złożoną, to symbol <math>(a \, | \, m)</math> jest symbolem Jacobiego
 
:* jeżeli '''nie wiemy''', czy <math>m</math> jest liczbą pierwszą, czy złożoną, to symbol <math>(a \, | \, m)</math> jest symbolem Jacobiego
 
 
 
 
 
 
 
 
 
 
 
== Rozwiązywanie kongruencji <math>x^2 \equiv a \!\! \pmod{m}</math> ==
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J43</span><br/>
 
Niech <math>p</math> będzie liczbą pierwszą nieparzystą, zaś <math>a</math> liczbą całkowitą taką, że <math>\gcd (a, p) = 1</math>. Kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{p^n}</math>
 
 
 
ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{p}</math>
 
 
 
ma rozwiązanie.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
 
 
<math>\Large{\Longrightarrow}</math>
 
 
 
Z założenia kongruencja <math>x^2 \equiv a \!\! \pmod{p^n}</math> ma rozwiązanie. Zatem istnieje taka liczba <math>r \in \mathbb{Z}</math>, że
 
 
 
::<math>r^2 \equiv a \pmod{p^n}</math>
 
 
 
Ponieważ <math>p^n \, | \, (r^2 - a)</math>, to tym bardziej <math>p \, | \, (r^2 - a)</math>, co oznacza, że prawdziwa jest kongruencja
 
 
 
::<math>r^2 \equiv a \pmod{p}</math>
 
 
 
Skąd wynika natychmiast, że kongruencja <math>x^2 \equiv a \!\! \pmod{p}</math> ma rozwiązanie.
 
 
 
<math>\Large{\Longleftarrow}</math>
 
 
 
Indukcja matematyczna. Z&nbsp;uczynionego w&nbsp;twierdzeniu założenia wiemy, że kongruencja <math>x^2 \equiv a \!\! \pmod{p}</math> ma rozwiązanie. Zatem twierdzenie jest prawdziwe dla <math>n = 1</math>. Załóżmy teraz (założenie indukcyjne), że kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{p^n}</math>
 
 
 
ma rozwiązanie <math>x \equiv u_n \!\! \pmod{p^n}</math> i&nbsp;pokażmy, że twierdzenie jest prawdziwe dla <math>n + 1</math>, czyli że rozwiązanie ma kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{p^{n + 1}}</math>
 
 
 
Wiemy, że liczba <math>u_n</math> jest określona modulo <math>p^n</math>. Nie tracąc ogólności, możemy założyć, że <math>1 \leqslant u_n < p^n</math>. Wartość <math>u_n</math> może zostać wybrana dowolnie (modulo <math>p^n</math>), ale musi zostać ustalona — wymaga tego precyzja i&nbsp;czytelność dowodu. Zatem
 
 
 
::<math>u^2_n - a = k p^n</math>
 
 
 
Zauważmy, że liczba <math>k</math> jest jednoznacznie określona, bo wartość <math>u_n</math> została ustalona. Ponieważ <math>\gcd (2 u_n, p) = 1</math>, to równanie
 
 
 
::<math>2 u_n \cdot s - p \cdot l = - k</math>
 
 
 
ma rozwiązanie (zobacz C74). Niech liczby <math>s_0</math> i <math>l_0</math> będą rozwiązaniem tego równania. Zatem
 
 
 
::<math>2 u_n \cdot s_0 - p \cdot l_0 = - k</math>
 
 
 
::<math>2 u_n \cdot s_0 p^n - l_0 \cdot p^{n + 1} = - k p^n</math>
 
 
 
::<math>2 u_n \cdot s_0 p^n - l_0 \cdot p^{n + 1} = - ( u^2_n - a )</math>
 
 
 
::<math>u^2_n + 2 u_n \cdot s_0 p^n = a + l_0 \cdot p^{n + 1}</math>
 
 
 
Modulo <math>p^{n + 1}</math> dostajemy
 
 
 
::<math>u^2_n + 2 u_n \cdot s_0 p^n \equiv a \pmod{p^{n + 1}}</math>
 
 
 
::<math>(u_n + s_0 p^n)^2 \equiv a \pmod{p^{n + 1}}</math>
 
 
 
bo <math>p^{n + 1} \, | \, p^{2 n}</math>. Zatem liczba <math>u_{n + 1} = u_n + s_0 p^n</math> jest rozwiązaniem kongruencji
 
 
 
::<math>x^2 \equiv a \pmod{p^{n + 1}}</math>
 
 
 
Pokazaliśmy tym samym prawdziwość tezy indukcyjnej, co kończy dowód indukcyjny.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J44</span><br/>
 
Dla niewielkich modułów rozwiązania dowolnej kongruencji możemy znaleźć przez bezpośrednie sprawdzenie. Omówimy teraz rozwiązania kongruencji <math>x^2 \equiv a \!\! \pmod{2^n}</math> dla <math>n = 1, 2, 3</math>. Ponieważ zakładamy, że <math>\gcd (a, m) = \gcd (a, 2^n) = 1</math>, to <math>a</math> musi być liczbą nieparzystą, zaś <math>x</math> nie może być liczbą parzystą. Istotnie, gdyby tak było, to mielibyśmy <math>0 \equiv 1 \!\! \pmod{2}</math>, bo <math>2 \, | \, 2^n</math>.
 
 
 
Kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{2}</math>
 
 
 
ma dokładnie jedno rozwiązanie <math>x \equiv 1 \!\! \pmod{2}</math>.
 
 
 
Kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{4}</math>
 
 
 
ma dwa rozwiązania, gdy <math>a \equiv 1 \!\! \pmod{4}</math>. Rozwiązaniami są: <math>x \equiv 1, 3 \!\! \pmod{4}</math>. W&nbsp;przypadku, gdy <math>a \equiv 3 \!\! \pmod{4}</math> kongruencja nie ma rozwiązań.
 
 
 
Kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{8}</math>
 
 
 
ma cztery rozwiązania, gdy <math>a \equiv 1 \!\! \pmod{8}</math>. Rozwiązaniami są: <math>x \equiv 1, 3, 5, 7 \!\! \pmod{8}</math>. W&nbsp;przypadku, gdy <math>a \equiv 3, 5, 7 \!\! \pmod{8}</math> kongruencja nie ma rozwiązań.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J45</span><br/>
 
Niech <math>n \geqslant 3</math> i <math>a</math> będzie liczbą nieparzystą. Kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{2^n}</math>
 
 
 
ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{8}</math>
 
 
 
ma rozwiązanie.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
 
 
<math>\Large{\Longrightarrow}</math>
 
 
 
Z założenia kongruencja <math>x^2 \equiv a \!\! \pmod{2^n}</math> ma rozwiązanie, zatem istnieje taka liczba <math>r \in \mathbb{Z}</math>, że
 
 
 
::<math>r^2 \equiv a \pmod{2^n}</math>
 
 
 
Ponieważ <math>2^n \, | \, (r^2 - a)</math>, gdzie <math>n \geqslant 3</math>, to tym bardziej <math>2^3 \, | \, (r^2 - a)</math>. Co oznacza, że prawdziwa jest kongruencja
 
 
 
::<math>r^2 \equiv a \pmod{2^3}</math>
 
 
 
Skąd wynika natychmiast, że kongruencja <math>x^2 \equiv a \!\! \pmod{8}</math> ma rozwiązanie.
 
 
 
<math>\Large{\Longleftarrow}</math>
 
 
 
Indukcja matematyczna. Z&nbsp;uczynionego w&nbsp;twierdzeniu założenia wiemy, że kongruencja <math>x^2 \equiv a \pmod{8}</math> ma rozwiązanie. Zatem twierdzenie jest prawdziwe dla <math>n = 3</math>. Załóżmy teraz (założenie indukcyjne), że kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{2^n}</math>
 
 
 
ma rozwiązanie <math>x \equiv u_n \!\! \pmod{2^n}</math> i&nbsp;pokażemy, że twierdzenie jest prawdziwe dla <math>n + 1</math>, czyli że rozwiązanie ma kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{2^{n + 1}}</math>
 
 
 
Z założenia istnieje taka liczba <math>k</math>, że <math>u^2_n - a = k \cdot 2^n</math>. Niech
 
 
 
::<math>r =
 
  \begin{cases}
 
  0 & \text{gdy } k \text{ jest liczbą parzystą}\\
 
  1 & \text{gdy } k \text{ jest liczbą nieparzystą}
 
  \end{cases}</math>
 
 
 
Zauważmy, że
 
 
 
::<math>(u_n + r \cdot 2^{n - 1})^2 - a = u^2_n - a + 2^n r + r^2 \cdot 2^{2 n - 2}</math>
 
 
 
::::::::<math>\;\! = k \cdot 2^n + 2^n r + r^2 \cdot 2^{2 n - 2}</math>
 
 
 
::::::::<math>\;\! = 2^n (k + r) + r^2 \cdot 2^{2 n - 2}</math>
 
 
 
::::::::<math>\;\! \equiv 0 \pmod{2^{n + 1}}</math>
 
 
 
bo <math>k + r</math> jest liczbą parzystą, a&nbsp;dla <math>n \geqslant 3</math> mamy <math>2 n - 2 \geqslant n + 1</math>. Zatem liczba <math>u_{n + 1} = u_n + r \cdot 2^{n - 1}</math> jest rozwiązaniem kongruencji
 
 
 
::<math>x^2 \equiv a \pmod{2^{n + 1}}</math>
 
 
 
Pokazaliśmy tym samym prawdziwość tezy indukcyjnej, co kończy dowód indukcyjny.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Wniosek J46</span><br/>
 
Jeżeli <math>a</math> jest liczbą nieparzystą, to kongruencja <math>x^2 \equiv a \!\! \pmod{2^n}</math> ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy <math>a</math> jest postaci <math>2 k + 1</math>, <math>4 k + 1</math> lub <math>8 k + 1</math> w&nbsp;zależności od tego, czy <math>n = 1</math>, czy <math>n = 2</math>, czy <math>n \geqslant 3</math>.
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J47</span><br/>
 
Niech <math>m = p^{\alpha_1}_1 \cdot \ldots \cdot p^{\alpha_s}_s</math> i <math>\gcd (a, m) = 1</math>. Z&nbsp;chińskiego twierdzenia o&nbsp;resztach (zobacz J3 i&nbsp;J11) wynika, że kongruencja <math>x^2 \equiv a \!\! \pmod{m}</math> ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy ma rozwiązanie każda z&nbsp;kongruencji
 
 
 
::<math>\begin{align}
 
x^2 & \equiv a \pmod{p^{\alpha_1}_1} \\
 
    & \,\,\,\cdots \\
 
x^2 & \equiv a \pmod{p^{\alpha_s}_s} \\
 
\end{align}</math>
 
 
 
Z definicji J27, twierdzeń J43 i&nbsp;J45, uwagi J44 i&nbsp;wniosku J46 otrzymujemy
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J48</span><br/>
 
Niech <math>m \in \mathbb{Z}_+</math> i <math>\gcd (a, m) = 1</math>. Kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{m}</math>
 
 
 
ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy
 
 
 
::{| border="0"
 
|-style=height:1em
 
| &#9679;&nbsp;&nbsp;&nbsp; dla każdego nieparzystego dzielnika pierwszego <math>p</math> liczby <math>m</math> jest&nbsp; <math>\left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} = 1</math>
 
|-style=height:1em
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli&nbsp; <math>8 \, | \, m</math>, &nbsp;to&nbsp; <math>8 \, | \, ( a - 1 )</math>
 
|-style=height:2.5em
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli&nbsp; <math>8 \nmid m</math>, &nbsp;ale&nbsp; <math>4 \, | \, m</math>, &nbsp;to&nbsp; <math>4 \, | \, ( a - 1 )</math>
 
|}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J49</span><br/>
 
Niech <math>m \in \mathbb{Z}_+</math> i <math>\gcd (a, m) = 1</math>. Kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{m}</math>
 
 
 
nie ma rozwiązania wtedy i&nbsp;tylko wtedy, gdy spełniony jest co najmniej jeden z&nbsp;warunków
 
 
 
::{| border="0"
 
|-style=height:1em
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli dla dowolnego nieparzystego dzielnika <math>d</math> liczby <math>m</math> jest <math>\left( {\small\frac{a}{d}} \right)_{\small{\!\! J}} = - 1</math>
 
|-style=height:1em
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli&nbsp; <math>8 \, | \, m</math> &nbsp;i&nbsp; <math>8 \nmid ( a - 1 )</math>
 
|-style=height:2.5em
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli&nbsp; <math>8 \nmid m</math>, &nbsp;ale&nbsp; <math>4 \, | \, m</math> &nbsp;i&nbsp; <math>4 \nmid ( a - 1 )</math>
 
|}
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
 
 
'''Punkt 1.'''
 
 
 
Z założenia <math>d \, | \, m</math>. Gdyby kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{m}</math>
 
 
 
miała rozwiązanie, to również kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{d}</math>
 
 
 
miałaby rozwiązanie, ale jest to niemożliwe, bo założyliśmy, że <math>\left( {\small\frac{a}{d}} \right)_{\small{\!\! J}} = - 1</math>, co oznacza, że <math>a</math> jest liczbą niekwadratową modulo <math>d</math>.
 
 
 
Punkty 2. i 3. wynikają wprost z&nbsp;twierdzenia J48.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Przykład J50</span><br/>
 
Zauważmy, że <math>\left( {\small\frac{17}{19}} \right)_{\small{\!\! J}} = \left( {\small\frac{5}{19}} \right)_{\small{\!\! J}} = 1</math> oraz <math>\left( {\small\frac{17}{23}} \right)_{\small{\!\! J}} = \left( {\small\frac{5}{23}} \right)_{\small{\!\! J}} = - 1</math>. W&nbsp;tabelach zestawiliśmy kongruencje i&nbsp;ich rozwiązania.
 
 
 
{| class="wikitable plainlinks"  style="display: inline-table; margin-left: 60px; margin-right: 50px; font-size: 90%; text-align: left;"
 
|-
 
! Kongruencje || Rozwiązania
 
 
|-
 
|-
| <math>x^2 \equiv 17 \pmod{16 \cdot 19}</math> || <math>25, 63, 89, 127, 177, 215, 241, 279</math>
+
| #PSP(<math>a</math>) <math> < 10^6</math> || <math>245</math> || <math>243</math> || <math>464</math> || <math>238</math> || <math>301</math> || <math>229</math> || <math>678</math> || <math>362</math> || <math>271</math> || <math>236</math> || <math>378</math> || <math>257</math> || <math>283</math> || <math>203</math>
 
|-
 
|-
| <math>x^2 \equiv 17 \pmod{8 \cdot 19}</math> || <math>13, 25, 51, 63, 89, 101, 127, 139</math>
+
| #PSP(<math>a</math>) <math> < 10^7</math> || <math>750</math> || <math>749</math> || <math>1347</math> || <math>726</math> || <math>895</math> || <math>651</math> || <math>1993</math> || <math>1150</math> || <math>766</math> || <math>672</math> || <math>1091</math> || <math>719</math> || <math>817</math> || <math>614</math>
 
|-
 
|-
| <math>x^2 \equiv 5 \;\, \pmod{8 \cdot 19}</math> || <math>\text{brak}</math>
+
| #PSP(<math>a</math>) <math> < 10^8</math> || <math>2057</math> || <math>2131</math> || <math>3805</math> || <math>1910</math> || <math>2314</math> || <math>1782</math> || <math>5407</math> || <math>3214</math> || <math>2091</math> || <math>1891</math> || <math>2933</math> || <math>1929</math> || <math>2155</math> || <math>1718</math>
 
|-
 
|-
| <math>x^2 \equiv 5 \;\, \pmod{4 \cdot 19}</math> || <math>9, 29, 47, 67</math>
+
| #PSP(<math>a</math>) <math> < 10^9</math> || <math>5597</math> || <math>5767</math> || <math>10173</math> || <math>5146</math> || <math>6204</math> || <math>4923</math> || <math>14629</math> || <math>8670</math> || <math>5599</math> || <math>5020</math> || <math>7781</math> || <math>5082</math> || <math>5848</math> || <math>4665</math>
|}
 
{| class="wikitable plainlinks"  style="display: inline-table; margin-left: 5px; margin-right: 5px; font-size: 90%; text-align: left;"
 
|-
 
! Kongruencje || Rozwiązania
 
|-
 
| <math>x^2 \equiv 17 \pmod{16 \cdot 23}</math> || <math>\text{brak}</math>
 
|-
 
| <math>x^2 \equiv 17 \pmod{8 \cdot 23}</math> || <math>\text{brak}</math>
 
|-
 
| <math>x^2 \equiv 5 \;\, \pmod{8 \cdot 23}</math> || <math>\text{brak}</math>
 
|-
 
| <math>x^2 \equiv 5 \;\, \pmod{4 \cdot 23}</math> || <math>\text{brak}</math>
 
 
|}
 
|}
  
  
  
<span style="font-size: 110%; font-weight: bold;">Zadanie J51</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K10</span><br/>
Rozwiązać kongruencję, gdzie <math>p</math> jest liczbą pierwszą nieparzystą
+
Można pokazać, że jeżeli <math>m</math> jest liczbą nieparzystą złożoną i&nbsp;istnieje przynajmniej jedna liczba <math>a</math> względnie pierwsza z <math>m</math>, taka że
  
::<math>x^2 + rx + s \equiv 0 \pmod{p}</math>
+
::<math>a^{m - 1} \not\equiv 1 \pmod m</math>
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
+
to dla co najmniej połowy liczb <math>b \in [1, m - 1]</math> względnie pierwszych z <math>m</math> jest
Ponieważ <math>\gcd (2, p) = 1</math>, to nie zmniejszając ogólności kongruencję powyższą możemy zapisać w&nbsp;postaci
 
  
::<math>4 x^2 + 4 rx + 4 s \equiv 0 \pmod{p}</math>
+
::<math>b^{m - 1} \not\equiv 1 \pmod m</math>
  
::<math>(2 x + r)^2 - r^2 + 4 s \equiv 0 \pmod{p}</math>
+
Zatem przeprowadzając test Fermata, możemy z&nbsp;prawdopodobieństwem nie mniejszym niż <math>\tfrac{1}{2}</math> twierdzić, że liczba, która przeszła test, jest liczbą pierwszą. Wykonując test <math>k</math> razy dla <math>k</math> różnych podstaw z&nbsp;przedziału <math>[1, m - 1]</math> możemy z&nbsp;prawdopodobieństwem większym niż <math>1 - \left( \tfrac{1}{2} \right)^k</math> twierdzić, że badana liczba <math>m</math> jest pierwsza.
  
::<math>(2 x + r)^2 \equiv r^2 - 4 s \pmod{p}</math>
+
Niestety, istnieją liczby złożone <math>m</math> takie, że
  
Widzimy, że rozpatrywana kongruencja ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy liczba <math>r^2 - 4 s</math> jest liczbą kwadratową modulo <math>p</math>. Istotnie, jeśli jest liczbą kwadratową, to istnieje taka liczba <math>b</math>, że <math>b^2 \equiv r^2 - 4 s \!\! \pmod{p}</math>, zatem otrzymujemy
+
::<math>a^{m - 1} \equiv 1 \pmod m</math>
  
::<math>(2 x + r)^2 \equiv b^2 \pmod{p}</math>
+
dla każdego <math>a</math> względnie pierwszego z <math>m</math>. Liczby te nazywamy liczbami Carmichaela i&nbsp;jest ich nieskończenie wiele. Pokazano, że dla dostatecznie dużych <math>x</math> ilość liczb Carmichaela mniejszych od <math>x</math> przekracza <math>x^{1/3}</math><ref name="Carmichael1"/><ref name="Carmichael2"/><ref name="Carmichael3"/>. Test Fermata jest zatem zbyt zawodny, aby można było go stosować.
  
::<math>2 x + r \equiv \pm b \pmod{p}</math>
 
  
::<math>x \equiv {\small\frac{p + 1}{2}} \cdot (- r \pm b) \pmod{p}</math>
 
  
Jeśli <math>r^2 - 4 s</math> nie jest liczbą kwadratową modulo <math>p</math>, to kongruencja
+
<span style="font-size: 110%; font-weight: bold;">Przykład K11</span><br/>
 +
Oto wszystkie liczby Carmichaela mniejsze od <math>100 000</math>
  
::<math>(2 x + r)^2 \equiv r^2 - 4 s \pmod{p}</math>
+
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: left; margin-right: auto;"
 
+
| <math>561=3⋅11⋅17</math> || <math>1105=5⋅13⋅17</math> || <math>1729=7⋅13⋅19</math> || <math>2465=5⋅17⋅29</math>
nie ma rozwiązania. Wynika stąd, że równoważna jej kongruencja
+
|-
 
+
| <math>2821=7⋅13⋅31</math> || <math>6601=7⋅23⋅41</math> || <math>8911=7⋅19⋅67</math> || <math>10585=5⋅29⋅73</math>
::<math>x^2 + rx + s \equiv 0 \pmod{p}</math>
+
|-
 
+
| <math>15841=7⋅31⋅73</math> || <math>29341=13⋅37⋅61</math> || <math>41041=7⋅11⋅13⋅41</math> || <math>46657=13⋅37⋅97</math>
również nie ma rozwiązania.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J52</span><br/>
 
Rozwiązać kongruencję
 
 
 
::<math>5 x^2 + 6 x + 8 \equiv 0 \pmod{19}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Rozwiązywanie kongruencji w&nbsp;przypadku konkretnych wartości liczb <math>r, s</math> jest łatwiejsze niż w&nbsp;przypadku ogólnym. Mnożąc obie strony kongruencji przez <math>4</math>, otrzymujemy
 
 
 
::<math>x^2 + 24 x + 32 \equiv 0 \pmod{19}</math>
 
 
 
::<math>x^2 + 24 x + 13 \equiv 0 \pmod{19}</math>
 
 
 
Celowo zostawiliśmy parzysty współczynnik przy <math>x</math>. Gdyby był nieparzysty, to zawsze możemy dodać do niego nieparzysty moduł.
 
 
 
::<math>(x + 12)^2 - 144 + 13 \equiv 0 \pmod{19}</math>
 
 
 
::<math>(x + 12)^2 + 2 \equiv 0 \pmod{19}</math>
 
 
 
::<math>(x + 12)^2 \equiv - 2 \pmod{19}</math>
 
 
 
::<math>(x + 12)^2 \equiv 6^2 \pmod{19}</math>
 
 
 
::<math>x + 12 \equiv \pm 6 \pmod{19}</math>
 
 
 
Otrzymujemy: <math>x \equiv 1 \!\! \pmod{19}</math> lub <math>x \equiv 13 \!\! \pmod{19}</math>.
 
 
 
 
 
Nieco spostrzegawczości pozwala znaleźć rozwiązanie kongruencji natychmiast. W&nbsp;naszym przypadku wystarczyło zauważyć, że
 
 
 
::<math>x^2 + 24 x + 13 \equiv x^2 - 14 x + 13 \equiv (x - 1) (x - 13) \equiv 0 \pmod{19}</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
 
 
 
 
== Najmniejsze liczby niekwadratowe modulo ==
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J53</span><br/>
 
Najmniejsze liczby niekwadratowe modulo przedstawiamy Czytelnikowi jedynie jako pewną ciekawostkę. Jednocześnie jest to nietrudny temat, który pozwala lepiej poznać i&nbsp;zrozumieć liczby kwadratowe modulo, liczby niekwadratowe modulo, symbol Legendre'a i&nbsp;symbol Jacobiego.
 
 
 
 
 
 
 
 
 
{| style="border-spacing: 5px; border: 2px solid black; background: transparent;"
 
| &nbsp;'''A.''' Najmniejsze liczby niekwadratowe modulo <math>p</math>&nbsp;
 
|}
 
 
 
<span style="font-size: 110%; font-weight: bold;">Przykład J54</span><br/>
 
W tabeli przedstawiliśmy najmniejsze liczby niekwadratowe modulo <math>p</math>
 
 
 
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: center; margin-right: auto;"
 
! <math>\boldsymbol{m}</math>
 
| <math>3</math> || <math>5</math> || <math>7</math> || <math>9</math> || <math>11</math> || <math>13</math> || <math>15</math> || <math>17</math> || <math>19</math> || <math>21</math> || <math>23</math> || <math>25</math> || <math>27</math> || <math>29</math> || <math>31</math> || <math>33</math> || <math>35</math> || <math>37</math> || <math>39</math> || <math>41</math> || <math>43</math> || <math>45</math> || <math>47</math> || <math>49</math> || <math>51</math>
 
 
|-
 
|-
! <math>\boldsymbol{\mathbb{n}( p )}</math>
+
| <math>52633=7⋅73⋅103</math> || <math>62745=3⋅5⋅47⋅89</math> || <math>63973=7⋅13⋅19⋅37</math> || <math>75361=11⋅13⋅17⋅31</math>
| <math>2</math> || <math>2</math> || <math>3</math> || <math>-</math> || <math>2</math> || <math>2</math> || <math>-</math> || <math>3</math> || <math>2</math> || <math>-</math> || <math>5</math> || <math>-</math> || <math>-</math> || <math>2</math> || <math>3</math> || <math>-</math> || <math>-</math> || <math>2</math> || <math>-</math> || <math>3</math> || <math>2</math> || <math>-</math> || <math>5</math> || <math>-</math> || <math>-</math>
 
 
|}
 
|}
  
  
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J55</span><br/>
 
Do wyszukiwania liczb <math>\mathbb{n} = \mathbb{n} (p)</math> Czytelnik może wykorzystać prostą funkcję napisaną w&nbsp;PARI/GP
 
 
<span style="font-size: 90%; color:black;">A(p) =
 
{
 
'''if'''( p == 2, '''return'''(0) );
 
'''if'''( !'''isprime'''(p), '''return'''(0) );
 
'''forprime'''(q = 2, p, '''if'''( jacobi(q, p) == -1, '''return'''(q) ));
 
}</span>
 
  
Zauważmy, że choć wyliczamy symbol Jacobiego, to jest to w&nbsp;rzeczywistości symbol Legendre'a, '''bo wiemy''', że liczba <math>p</math> jest liczbą pierwszą (w przypadku, gdy <math>p</math> jest liczbą złożoną, funkcja zwraca zero).
 
  
 +
== Test Millera-Rabina ==
  
 +
Rozpoczniemy od udowodnienia prostego twierdzenia
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J56</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie K12</span><br/>
Niech <math>\mathbb{n} \in \mathbb{Z}_+</math> i&nbsp;niech <math>p</math> będzie liczbą pierwszą nieparzystą. Jeżeli <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową modulo <math>p</math>, to jest liczbą pierwszą.
+
Jeśli <math>m</math> jest liczbą pierwszą nieparzystą i <math>x^2 \equiv 1 \pmod m</math>, to albo <math>x \equiv - 1 \pmod m</math>, albo <math>x \equiv 1 \pmod m</math>.
  
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
Przypuśćmy, że <math>\mathbb{n} = a b</math> jest liczbą złożoną, gdzie <math>1 < a, b < \mathbb{n}</math>. Z&nbsp;założenia <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową modulo <math>p</math>, zatem liczby <math>a, b</math> są liczbami kwadratowymi modulo <math>p</math>. Z&nbsp;definicji liczb kwadratowych muszą istnieć takie liczby <math>r, s</math>, że
+
Z założenia
 
 
::<math>r^2 \equiv a \pmod{p}</math>
 
 
 
::<math>s^2 \equiv b \pmod{p}</math>
 
 
 
Skąd wynika, że
 
  
::<math>\mathbb{n} = a b \equiv (r s)^2 \pmod{p}</math>
+
::<math>x^2 \equiv 1 \pmod m</math>
  
Wbrew założeniu, że <math>\mathbb{n}</math> jest liczbą niekwadratową modulo <math>p</math>.<br/>
+
Zatem <math>m | (x^2 - 1)</math>, czyli <math>m | (x - 1) (x + 1)</math>. Ponieważ z&nbsp;założenia <math>m</math> jest liczbą pierwszą nieparzystą, to <math>m</math> dzieli dokładnie jedną z&nbsp;liczb <math>x - 1</math> i <math>x + 1</math>. Istotnie, gdyby <math>m | (x - 1)</math> <math>\text{i} \;\, m | (x + 1)</math>, to <math>m</math> dzieliłaby również ich różnicę równą <math>2</math>, co jest niemożliwe w&nbsp;przypadku gdy <math>m</math> jest liczbą pierwszą nieparzystą.<br/>
 
&#9633;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
Linia 1618: Linia 294:
  
  
<span style="font-size: 110%; font-weight: bold;">Zadanie J57</span><br/>
+
Prace Gary'ego Millera<ref name="Miller1"/> i&nbsp;Michaela Rabina<ref name="Rabin1"/> pozwoliły sformułować znacznie silniejszy test. Podstawą tego testu jest następujące twierdzenie
Pokazać, że najmniejszą liczbą niekwadratową modulo <math>p</math> jest
 
 
 
:* &nbsp;liczba <math>2</math> wtedy i&nbsp;tylko wtedy, gdy <math>p = 8 k \pm 3</math>
 
:* &nbsp;liczba <math>3</math> wtedy i&nbsp;tylko wtedy, gdy <math>p = 24 k \pm 7</math>
 
:* &nbsp;liczba <math>\geqslant 5</math> wtedy i&nbsp;tylko wtedy, gdy <math>p = 24 k \pm 1</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Z właściwości symbolu Legendre'a (zobacz J29 p.7) wiemy, że
 
 
 
::<math>\left( {\small\frac{2}{p}} \right)_{\small{\!\! L}} \,\, =
 
\,\,
 
  \begin{cases}
 
\;\;\: 1 & \text{gdy } p \equiv 1, 7 \pmod{8} \\
 
      - 1 & \text{gdy } p \equiv 3, 5 \pmod{8}
 
  \end{cases}</math>
 
 
 
Wynika stąd natychmiast, dla liczb pierwszych <math>p</math> postaci <math>8 k \pm 3</math> (i tylko dla takich liczb) liczba <math>2</math> jest liczbą niekwadratową, czyli również najmniejszą liczbą niekwadratową modulo <math>p</math>.
 
 
 
Z zadania J40 wynika, że liczba <math>3</math> jest liczbą niekwadratową jedynie dla liczb pierwszych postaci <math>12 k \pm 5</math>. Zatem dla liczb pierwszych, które są jednocześnie postaci <math>p = 8 k \pm 1</math> i <math>p = 12 j \pm 5</math>, liczba <math>3</math> jest najmniejszą liczbą niekwadratową modulo <math>p</math>. Z&nbsp;czterech warunków
 
 
 
::<math>p = 8 k + 1 \quad \text{i} \quad p = 12 j + 5</math>
 
 
 
::<math>p = 8 k + 1 \quad \text{i} \quad p = 12 j + 7</math>
 
 
 
::<math>p = 8 k + 7 \quad \text{i} \quad p = 12 j + 5</math>
 
 
 
::<math>p = 8 k + 7 \quad \text{i} \quad p = 12 j + 7</math>
 
 
 
Drugi i&nbsp;trzeci nie są możliwe, bo modulo <math>4</math> otrzymujemy
 
 
 
::<math>p \equiv 1 \pmod{4} \quad \text{i} \quad p \equiv 3 \pmod{4}</math>
 
 
 
::<math>p \equiv 3 \pmod{4} \quad \text{i} \quad p \equiv 1 \pmod{4}</math>
 
 
 
a z&nbsp;pierwszego i&nbsp;czwartego mamy
 
 
 
::<math>3 p = 24 k + 3 \quad \text{i} \quad 2 p = 24 j + 10 \qquad \;\: \Longrightarrow \qquad p = 24 (k - j) - 7 \qquad \Longrightarrow \qquad p \equiv - 7 \pmod{24}</math>
 
 
 
::<math>3 p = 24 k + 21 \quad \text{i} \quad 2 p = 24 j + 14 \qquad \Longrightarrow \qquad p = 24 (k - j) + 7 \qquad \Longrightarrow \qquad p \equiv 7 \pmod{24}</math>
 
 
 
Zauważmy, że problem mogliśmy zapisać w&nbsp;postaci układu kongruencji
 
 
 
::<math>p \equiv \pm 1 \pmod{8}</math>
 
 
 
::<math>p \equiv \pm 5 \pmod{12}</math>
 
 
 
Gdyby moduły tych kongruencji były względnie pierwsze, to każdemu wyborowi znaków odpowiadałaby pewna kongruencja równoważna (zobacz J3). Widzimy, że w&nbsp;przypadku, gdy moduły nie są względnie pierwsze, kongruencja równoważna może istnieć, ale nie musi. Rozwiązując taki problem, wygodnie jest skorzystać z&nbsp;programu PARI/GP. Wystarczy wpisać
 
 
 
chinese(Mod(1, 8), Mod(5, 12)) = Mod(17, 24)
 
chinese(Mod(1, 8), Mod(-5, 12)) - błąd
 
chinese(Mod(-1, 8), Mod(5, 12)) - błąd
 
chinese(Mod(-1, 8), Mod(-5, 12)) = Mod(7, 24)
 
 
 
Ostatni punkt zadania rozwiążemy tą metodą. Liczba większa lub równa <math>5</math> jest najmniejszą liczbą niekwadratową modulo <math>p</math> wtedy i&nbsp;tylko wtedy, gdy liczby <math>2</math> i <math>3</math> są liczbami kwadratowymi modulo <math>p</math>, co oznacza, że liczba pierwsza <math>p</math> spełnia kongruencje
 
 
 
::<math>p \equiv \pm 1 \pmod{8}</math>
 
 
 
::<math>p \equiv \pm 1 \pmod{12}</math>
 
 
 
Postępując jak wyżej, otrzymujemy
 
  
chinese(Mod(1, 8), Mod(1, 12)) = Mod(1, 24)
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie K13</span><br/>
chinese(Mod(1, 8), Mod(-1, 12)) - błąd
+
Jeżeli <math>m</math> jest liczbą pierwszą nieparzystą i <math>m - 1 = 2^r d</math>, gdzie <math>d</math> jest liczbą nieparzystą, to dla dowolnego <math>a \in [1, m - 1]</math> jest albo
chinese(Mod(-1, 8), Mod(1, 12)) - błąd
 
chinese(Mod(-1, 8), Mod(-1, 12)) = Mod(23, 24)
 
  
Co należało pokazać.<br/>
+
::<math>a^d \equiv 1 \pmod m</math>
&#9633;
 
{{\Spoiler}}
 
  
 +
albo
  
 +
::<math>a^{2^k d} \equiv - 1 \pmod m</math>
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J58</span><br/>
+
dla pewnego <math>k \in [0, r - 1]</math>.
Dla każdej liczby pierwszej <math>p_n</math> istnieje nieskończenie wiele takich liczb pierwszych <math>q</math>, że <math>p_n</math> jest najmniejszą liczbą niekwadratową modulo <math>q</math>.
 
  
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
Niech <math>2, p_2, \ldots, p_{n - 1}, p_n</math> będą kolejnymi liczbami pierwszymi. Wybierzmy liczbę <math>u</math> tak, aby spełniała układ kongruencji
+
Rozważmy ciąg <math>r + 1</math> liczb zdefiniowanych następująco
  
::<math>\begin{align}
+
::<math>\begin{array}{l}
u & \equiv 1 \pmod{8 p_2 \cdot \ldots \cdot p_{n - 1}} \\
+
  u_0 = a^d\\
u & \equiv a \pmod{p_n}
+
  u_1 = a^{2 d} = (a^d)^2\\
\end{align}</math>
+
  u_2 = a^{2^2 d} = (a^{2 d})^2\\
 +
  \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots\\
 +
  u_{r - 1} = a^{2^{r - 1} d} = (a^{2^{r - 2}})^2\\
 +
  u_r = a^{2^r d} = (a^{2^{r - 1} d})^2 = a^{m - 1}
 +
\end{array}</math>
  
gdzie <math>a</math> oznacza dowolną liczbą niekwadratową modulo <math>p_n</math>. Na podstawie chińskiego twierdzenia o&nbsp;resztach (zobacz J3) powyższy układ kongruencji może być zapisany w&nbsp;postaci kongruencji równoważnej
+
Wyrazy ciągu <math>(u_i)</math> są dane wzorem ogólnym
  
::<math>u \equiv c \pmod{8 p_2 \cdot \ldots \cdot p_n}</math>
+
::<math>u_i = a^{2^i d}</math>
  
 +
gdzie <math>i = 0, 1, \ldots, r</math>
  
Zauważmy, że żadna z&nbsp;liczb pierwszych <math>p_k</math>, gdzie <math>1 \leqslant k \leqslant n</math> nie dzieli liczby <math>c</math>, bo mielibyśmy
+
Zauważmy, że mogą zdarzyć się następujące sytuacje
  
::<math>u \equiv 0 \pmod{p_k}</math>
+
:a) żaden z&nbsp;wyrazów ciągu <math>(u_i)</math> nie przystaje do <math>1</math> modulo <math>m</math>
  
wbrew wypisanemu wyżej układowi kongruencji. Zatem <math>\gcd (c, 8 p_2 \cdot \ldots \cdot p_n) = 1</math> i&nbsp;z&nbsp;twierdzenia Dirichleta wiemy, że wśród liczb <math>u</math> spełniających kongruencję <math>u \equiv c \!\! \pmod{8 p_2 \cdot \ldots \cdot p_n}</math> występuje nieskończenie wiele liczb pierwszych (bo wśród tych liczb są liczby postaci <math>8 p_2 \cdot \ldots \cdot p_n \cdot k + c</math>, gdzie <math>k \in \mathbb{Z}_+</math>). Oznaczmy przez <math>q</math> dowolną z&nbsp;tych liczb pierwszych.
+
:b) wszystkie wyrazy ciągu <math>(u_i)</math> przystają do <math>1</math> modulo <math>m</math>
  
 +
:c) <math>u_k</math> jest pierwszym wyrazem ciągu <math>(u_i)</math>, który przystaje do <math>1</math> modulo <math>m</math>
  
Ponieważ <math>q \equiv 1 \!\! \pmod{8}</math>, to <math>\left( {\small\frac{2}{q}} \right)_{\small{\!\! L}} = 1</math> (zobacz J29), a&nbsp;dla wszystkich liczb pierwszych nieparzystych <math>p_k < p_n</math> mamy
 
  
<div style="margin-top: 1em; margin-bottom: 1em;">
+
Co możemy zapisać jako
::<math>\left( {\small\frac{p_k}{q}} \right)_{\small{\!\! L}} = \left( {\small\frac{q}{p_k}} \right)_{\small{\!\! L}} \cdot (- 1)^{\tfrac{q - 1}{2} \cdot \tfrac{p_k - 1}{2}} = \left( {\small\frac{q}{p_k}} \right)_{\small{\!\! L}} = \left( {\small\frac{c}{p_k}} \right)_{\small{\!\! L}} = \left( {\small\frac{1}{p_k}} \right)_{\small{\!\! L}} = 1</math>
 
</div>
 
  
bo <math>8 \, | \, (q - 1)</math>. Dla liczby pierwszej <math>p_n</math> jest
+
:a) <math>u_i \not\equiv 1 \pmod m \quad</math> dla każdego <math>i \in [0, r]</math>
  
<div style="margin-top: 1em; margin-bottom: 1em;">
+
:b) <math>u_i \equiv 1 \pmod m \quad</math> dla każdego <math>i \in [0, r]</math>
::<math>\left( {\small\frac{p_n}{q}} \right)_{\small{\!\! L}} = \left( {\small\frac{q}{p_n}} \right)_{\small{\!\! L}} \cdot (- 1)^{\tfrac{q - 1}{2} \cdot \tfrac{p_n - 1}{2}} = \left( {\small\frac{q}{p_n}} \right)_{\small{\!\! L}} = \left( {\small\frac{c}{p_n}} \right)_{\small{\!\! L}} = \left( {\small\frac{a}{p_n}} \right)_{\small{\!\! L}} = - 1</math>
 
</div>
 
  
Zatem wszystkie liczby pierwsze mniejsze od <math>p_n</math> są liczbami kwadratowymi modulo <math>q</math>, a&nbsp;liczba pierwsza <math>p_n</math> jest najmniejszą liczbą niekwadratową modulo <math>q</math>. Zauważmy, że <math>q</math> była dowolnie wybraną liczbą pierwszą z&nbsp;nieskończenie wielu liczb pierwszych występujących w&nbsp;ciągu arytmetycznym <math>8 p_2 \cdot \ldots \cdot p_n \cdot k + c</math>, gdzie <math>k \in \mathbb{Z}_+</math>. Co kończy dowód.<br/>
+
:c) <math>u_k \equiv 1 \pmod m \quad</math> dla pewnego <math>k \in [0, r]</math>
&#9633;
 
{{\Spoiler}}
 
  
  
 +
Z definicji każdy wyraz ciągu <math>(u_i)</math> jest kwadratem poprzedniego. W&nbsp;szczególności oznacza to, że jeżeli dla pewnego <math>k \in [0, r]</math> jest <math>u_k \equiv 1 \pmod m</math>, to <math>u_i \equiv 1 \pmod m</math> dla wszystkich <math>i \geqslant k</math>. Ten fakt pozwala doprecyzować zapis poszczególnych przypadków.
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J59 (Sarvadaman Chowla)</span><br/>
+
:a) <math>u_i \not\equiv 1 \pmod m \quad</math> dla każdego <math>i \in [0, r]</math>
Istnieje niekończenie wiele liczb pierwszych <math>p</math> takich, że najmniejsza liczba niekwadratowa modulo <math>p</math> jest większa od <math>{\small\frac{\log p}{2 L \log 2}}</math>, gdzie <math>L</math> jest stałą Linnika.
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
+
:b) <math>u_0 \equiv 1 \pmod m</math>
Niech <math>a = 4 P (m)</math>, gdzie <math>P(m)</math> jest iloczynem wszystkich liczb pierwszych nie większych od <math>m</math>. Z&nbsp;twierdzenia Dirichleta wiemy, że w&nbsp;ciągu arytmetycznym <math>u_k = a k + 1</math> występuje nieskończenie wiele liczb pierwszych. Niech <math>p</math> oznacza dowolną z&nbsp;nich.
 
 
 
Ponieważ <math>p \equiv 1 \!\! \pmod{8}</math>, to
 
 
 
::<math>\left( {\small\frac{2}{p}} \right)_{\small{\!\! L}} = 1</math>
 
 
 
(zobacz J29 p.7). Oczywiście <math>p \equiv 1 \!\! \pmod{4}</math>, zatem dla dowolnej liczby pierwszej nieparzystej <math>q_i \leqslant m</math> z&nbsp;twierdzenia J29 p.9 otrzymujemy
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{q_i}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{p}{q_i}} \right)_{\small{\!\! L}} = \left( {\small\frac{a k + 1}{q_i}} \right)_{\small{\!\! L}} = \left( {\small\frac{1}{q_i}} \right)_{\small{\!\! L}} = 1</math>
 
</div>
 
 
 
Wynika stąd, że najmniejsza liczba niekwadratowa modulo <math>p</math> jest większa od <math>m</math>. Wiemy też, że (zobacz A9)
 
  
::<math>a = 4 P (m) < 4 \cdot 4^m = 4^{m + 1}</math>
+
:c) <math>u_0 \not\equiv 1 \pmod m \quad</math> dla każdego <math>i \in [0, k - 1] \quad</math> oraz <math>\quad u_k \equiv 1 \pmod m \quad </math> dla każdego <math>i \in [k, r] , \quad</math> gdzie <math>k \geqslant 1</math>
  
Załóżmy teraz, że <math>p</math> jest najmniejszą liczbą pierwszą w&nbsp;ciągu arytmetycznym <math>u_k = a k + 1</math>, a&nbsp;liczba <math>m</math> została wybrana tak, że liczba <math>a = 4 P (m)</math> jest dostatecznie duża i&nbsp;możliwe jest skorzystanie z&nbsp;twierdzenia Linnika (zobacz C30). Dostajemy natychmiast oszacowanie
 
  
::<math>p = p_{\min} (a, 1) < a^L</math>
+
W przypadku a) mamy <math>u_r = a^{m - 1} \not\equiv 1 \pmod m</math>, zatem liczba <math>m</math> byłaby liczbą złożoną, wbrew założeniu, że jest liczbą pierwszą.<br/>
  
gdzie <math>L</math> jest stałą Linnika (możemy przyjąć <math>L = 5</math>). Łącząc powyższe oszacowania, łatwo otrzymujemy oszacowanie najmniejszej liczby niekwadratowej modulo <math>p</math>
+
Przypadek b) jest możliwy (np. dla <math>m = 41</math> i <math>a = 10</math>), ale nie pozwala powiedzieć nic więcej ani o&nbsp;liczbie <math>m</math>, ani o&nbsp;wyrazach ciągu <math>(u_i)</math>, które wszystkie przystają do <math>1</math> modulo <math>m</math>.<br/>
  
::<math>\mathbb{n}(p) \geqslant m + 1 > \log_4 a = {\small\frac{\log a}{\log 4}} = {\small\frac{\log a^L}{2 L \log 2}} > {\small\frac{\log p}{2 L \log 2}}</math>
+
W przypadku c) mamy <math>u_k \equiv 1 \pmod m</math>, czyli <math>(u_{k - 1})^2 \equiv 1 \pmod m</math>. Z&nbsp;twierdzenia K12 wiemy, że musi być albo <math>u_{k - 1} \equiv - 1 \pmod m</math>, albo <math>u_{k - 1} \equiv 1 \pmod m</math>. Ale drugi przypadek nie może zachodzić, bo założyliśmy, że <math>u_k</math> jest pierwszym wyrazem ciągu <math>(u_i)</math>, który przystaje do <math>1</math> modulo <math>m</math>. Zatem musi być <math>u_{k - 1} \equiv - 1 \pmod m</math>.<br/>
  
Każdemu wyborowi innej liczby <math>m' > m</math> takiej, że <math>P(m') > P (m)</math> odpowiada inna liczba pierwsza <math>p'</math> taka, że <math>\mathbb{n}(p') > {\small\frac{\log p'}{2 L \log 2}}</math>, zatem liczb pierwszych <math>p</math> dla których najmniejsza liczba niekwadratowa modulo <math>p</math> jest większa od <math>{\small\frac{\log p}{2 L \log 2}}</math> jest nieskończenie wiele.<br/>
+
Co kończy dowód twierdzenia.<br/>
 
&#9633;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
Linia 1766: Linia 364:
  
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J60</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Definicja K14</span><br/>
W twierdzeniu J58 pokazaliśmy, że dla każdej liczby pierwszej <math>\mathbb{n}</math> istnieją takie liczby pierwsze <math>p</math>, że <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową modulo <math>p</math>. Zatem zbiór <math>S_\mathbb{n}</math> liczb pierwszych takich, że dla każdej liczby <math>p \in S_\mathbb{n}</math> liczba <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową modulo <math>p</math> jest zbiorem niepustym. Wynika stąd, że zbiór <math>S_\mathbb{n}</math> ma element najmniejszy i&nbsp;możemy te najmniejsze liczby pierwsze łatwo znaleźć – wystarczy w&nbsp;PARI/GP napisać proste polecenie
+
Złożoną liczbę nieparzystą <math>m</math>, która spełnia twierdzenie K13 dla pewnej liczby <math>a \in \mathbb{Z}</math>, będziemy nazywali liczbą silnie pseudopierwszą przy podstawie <math>a</math> (w skrócie: SPSP(<math>a</math>)).
  
<span style="font-size: 90%; color:black;">'''forprime'''(n = 2, 50, '''forprime'''(p = 2, 10^10, '''if'''( A(p) == n, '''print'''(n, "  ", p); '''break'''() )))</span>
 
  
W tabeli przedstawiamy uzyskane rezultaty (zobacz też [https://oeis.org/A000229 A000229]).
 
  
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: center; margin-right: auto;"
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K15</span><br/>
|-
+
Niech <math>a</math> będzie liczbą całkowitą względnie pierwszą z <math>m</math> i <math>a \in [1, m - 1]</math>. Można pokazać, że jeżeli <math>m \neq 9</math> jest liczbą nieparzystą złożoną, to co najwyżej <math>\tfrac{1}{4}</math> liczb <math>a</math> stanowią liczby silnie pseudopierwsze. Zatem w&nbsp;przypadku liczb silnie pseudopierwszych nie istnieje odpowiednik liczb Carmichaela. Czyli nie istnieją liczby złożone nieparzyste <math>m</math>, dla których twierdzenie K13 byłoby prawdziwe dla wszystkich podstaw <math>a</math>.
! <math>\boldsymbol{\mathbb{n}}</math>  
 
| <math>2</math> || <math>3</math> || <math>5</math> || <math>7</math> || <math>11</math> || <math>13</math> || <math>17</math> || <math>19</math> || <math>23</math> || <math>29</math> || <math>31</math> || <math>37</math> || <math>41</math> || <math>43</math> || <math>47</math>
 
|-
 
! <math>\boldsymbol{p}</math>  
 
| <math>3</math> || <math>7</math> || <math>23</math> || <math>71</math> || <math>311</math> || <math>479</math> || <math>1559</math> || <math>5711</math> || <math>10559</math> || <math>18191</math> || <math>31391</math> || <math>422231</math> || <math>701399</math> || <math>366791</math> || <math>3818929</math>
 
|}
 
  
 +
Wynika stąd, że jeżeli dla <math>k</math> różnych liczb <math>a</math> prawdziwe jest twierdzenie K13, to prawdopodobieństwo uznania liczby złożonej <math>m</math> za pierwszą wynosi <math>\left( \tfrac{1}{4} \right)^k</math>.
  
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J61</span><br/>
 
Niech <math>p</math> będzie liczbą pierwszą nieparzystą, a <math>\mathbb{n}</math> będzie najmniejszą liczbą niekwadratową modulo <math>p</math>. Prawdziwe jest oszacowanie
 
  
::<math>\mathbb{n} (p) < \sqrt{p} + {\small\frac{1}{2}}</math>
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K16</span><br/>
 +
Wykorzystując twierdzenie K13, możemy napisać w&nbsp;PARI/GP prosty program do testowania pierwszości liczb.
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
+
<span style="font-size: 90%; color:black;">isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, a) =
Ponieważ <math>\mathbb{n} \nmid p</math>, to z&nbsp;oszacowania <math>x - 1 < \lfloor x \rfloor \leqslant x</math> wynika, że
+
{
 +
'''local'''(d, k, r, x);
 +
'''if'''( m % 2 == 0, '''return'''(m == 2) );
 +
r = '''valuation'''(m - 1, 2); \\ wykładnik, z jakim liczba 2 występuje w rozwinięciu na czynniki pierwsze liczby m - 1
 +
d = (m - 1) / 2^r;
 +
x = modPower(a, d, m);
 +
'''if'''( x == 1 || x == m - 1, '''return'''(1) ); \\ x = m - 1 to przypadek k == 0
 +
k = 0;
 +
'''while'''( k++ < r,
 +
        x = x^2 % m;
 +
        '''if'''( x == m - 1, '''return'''(1) );
 +
      );
 +
'''return'''(0);
 +
}</span>
  
::<math>{\small\frac{p}{\mathbb{n}}} - 1 < \left\lfloor {\small\frac{p}{\mathbb{n}}} \right\rfloor < {\small\frac{p}{\mathbb{n}}}</math>
 
  
::<math>p < \mathbb{n} \left\lfloor {\small\frac{p}{\mathbb{n}}} \right\rfloor + \mathbb{n} < p + \mathbb{n}</math>
 
  
Niech <math>u = \left\lfloor {\small\frac{p}{\mathbb{n}}} \right\rfloor + 1</math>, mamy
+
<span style="font-size: 110%; font-weight: bold;">Zadanie K17</span><br/>
 +
Pokazać, że jeżeli liczba <math>m</math> jest SPSP(<math>a</math>), to jest PSP(<math>a</math>).
  
::<math>0 < \mathbb{n} u - p < \mathbb{n}</math>
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 +
Z założenia <math>m</math> jest SPSP(<math>a</math>), zatem spełniony jest dokładnie jeden z&nbsp;warunków
  
Liczba <math>\mathbb{n} u - p</math> musi być liczbą kwadratową modulo <math>p</math>, zatem
+
:* <math>a^d \equiv 1 \pmod m</math>
 +
:* <math>a^{2^k \cdot d} \equiv - 1 \pmod m</math>, dla pewnego <math>k \in [0, r - 1]</math>
  
::<math>1 = \left( {\small\frac{\mathbb{n} u - p}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{\mathbb{n}}{p}} \right)_{\small{\!\! L}} \cdot \left( {\small\frac{u}{p}} \right)_{\small{\!\! L}} = - \left( {\small\frac{u}{p}} \right)_{\small{\!\! L}}</math>
+
gdzie <math>m - 1 = 2^r \cdot d</math>, przy czym <math>d</math> jest liczbą nieparzystą.
  
Ale z&nbsp;założenia <math>\mathbb{n}</math> jest najmniejszą liczbą taką, że <math>\left( {\small\frac{\mathbb{n}}{p}} \right)_{\small{\!\! L}} = - 1</math>. Wynika stąd, że musi być <math>\mathbb{n} \leqslant u</math> i&nbsp;łatwo znajdujemy, że
+
Jeżeli spełniony jest pierwszy warunek, to
  
::<math>\mathbb{n} \leqslant \left\lfloor {\small\frac{p}{\mathbb{n}}} \right\rfloor + 1 < {\small\frac{p}{\mathbb{n}}} + 1</math>
+
::<math>(a^d)^{2^r} \equiv 1 \pmod m</math>
  
::<math>\mathbb{n}^2 < p + \mathbb{n}</math>
+
::<math>a^{2^r \cdot d} \equiv 1 \pmod m</math>
  
Ponieważ wypisane liczby są liczbami całkowitymi, to ostatnią nierówność możemy zapisać w&nbsp;postaci
+
Czyli <math>m</math> jest PSP(<math>a</math>).
  
::<math>\mathbb{n}^2 \leqslant p + \mathbb{n} - 1</math>
+
Jeżeli spełniony jest drugi warunek, to
  
Skąd otrzymujemy
+
::<math>(a^{2^k \cdot d})^{2^{r - k}} \equiv (- 1)^{2^{r - k}} \pmod m</math>
  
::<math>\left( \mathbb{n} - {\small\frac{1}{2}} \right)^2 \leqslant p - {\small\frac{3}{4}}</math>
+
::<math>a^{2^r \cdot d} \equiv 1 \pmod m</math>
  
::<math>\mathbb{n} \leqslant {\small\frac{1}{2}} + \sqrt{p - {\small\frac{3}{4}}} < {\small\frac{1}{2}} + \sqrt{p}</math>
+
Czyli <math>m</math> jest PSP(<math>a</math>).<br/>
 
 
Co należało pokazać.<br/>
 
 
&#9633;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
Linia 1826: Linia 428:
  
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J62*</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Przykład K18</span><br/>
Niech <math>p</math> będzie liczbą pierwszą nieparzystą, a <math>\mathbb{n}</math> będzie najmniejszą liczbą niekwadratową modulo <math>p</math>. Dla <math>p \geqslant 5</math> prawdziwe jest oszacowanie<ref name="Norton1"/><ref name="Trevino1"/><ref name="Trevino2"/>
+
Pokażemy, że jeżeli <math>m</math> jest PSP(<math>2</math>), to <math>2^m - 1</math> jest SPSP(<math>2</math>).
  
::<math>\mathbb{n} (p) \leqslant 1.1 \cdot p^{1 / 4} \log p</math>
+
Z założenia <math>m</math> jest złożoną liczbą nieparzystą, zatem <math>N = 2^m - 1</math> jest złożoną liczbą nieparzystą. Ponieważ <math>m</math> jest FPSP(<math>2</math>), to
  
 +
::<math>2^{m - 1} \equiv 1 \pmod m</math>
  
 +
Wynika stąd natychmiast, że <math>2^{m - 1} - 1 = k m</math>, gdzie <math>k</math> jest liczbą nieparzystą. Zatem
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J63</span><br/>
+
::<math>N - 1 = 2^m - 2 = 2 (2^{m - 1} - 1) = 2 k m</math>
Liczby <math>\mathbb{n} = \mathbb{n} (p)</math> są zaskakująco małe. Średnia wartość <math>\mathbb{n} = \mathbb{n} (p)</math>, gdzie <math>p</math> są nieparzystymi liczbami pierwszymi, jest równa<ref name="Erdos1"/>
 
  
::<math>\lim_{x \to \infty} {\small\frac{1}{\pi (x)}} \sum_{p \leqslant x} \mathbb{n} (p) = \sum_{k = 1}^{\infty} {\small\frac{p_k}{2^k}} = 3.674643966 \ldots</math>
+
Widzimy, że liczba <math>2</math> występuje w&nbsp;pierwszej potędze w&nbsp;rozwinięciu liczby <math>N - 1</math> na czynniki pierwsze i&nbsp;łatwo otrzymujemy, że
  
 +
::<math>2^{(N - 1) / 2} = 2^{k m} = (2^m)^k = (2^m - 1 + 1)^k = (N + 1)^k \equiv 1 \pmod N</math>
  
 +
Czyli <math>N = 2^m - 1</math> jest SPSP(<math>2</math>).
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J64</span><br/>
 
Na zakończenie tego tematu podamy jeszcze klika twierdzeń dotyczących liczb niekwadratowych modulo <math>p</math>.
 
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Przykład K19</span><br/>
 +
Tabela zawiera najmniejsze liczby silnie pseudopierwsze dla podstaw <math>a</math> od <math>2</math> do <math>15</math>
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J65</span><br/>
+
<span style="font-size: 90%; color:black;">'''for'''(a=2, 15, s=1; '''forstep'''(m=3, 20000, 2, '''if'''( isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, a)  &&  !'''isprime'''(m), '''print'''("a=", a, "  m=", m); s++ ); '''if'''( s>5, '''break'''() ) ))</span>
Dla każdej liczby pierwszej <math>p \geqslant 5</math> najmniejsza '''nieparzysta''' liczba niekwadratowa modulo <math>p</math> jest liczbą pierwszą mniejszą od <math>p</math>.
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
+
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: center; margin-right: auto;"
Niech <math>S \subset \{ 1, 2, \ldots, p - 1 \}</math> będzie zbiorem wszystkich '''nieparzystych''' liczb niekwadratowych modulo <math>p</math>. Z&nbsp;twierdzenia J24 wiemy, że jeżeli <math>p</math> jest liczbą pierwszą nieparzystą, to w&nbsp;zbiorze <math>\{ 1, 2, \ldots, p - 1 \}</math> jest dokładnie <math>{\small\frac{p - 1}{2}}</math> liczb kwadratowych modulo <math>p</math> i&nbsp;tyle samo liczb niekwadratowych modulo <math>p</math>. W&nbsp;zbiorze <math>\{ 1, 2, \ldots, p - 1 \}</math> mamy też dokładnie <math>{\small\frac{p - 1}{2}}</math> liczb parzystych i&nbsp;tyle samo liczb nieparzystych.
+
! &nbsp;&nbsp;<math>\boldsymbol{a}</math>&nbsp;&nbsp; !! <math>\boldsymbol{2}</math> !! <math>\boldsymbol{3}</math> !! <math>\boldsymbol{4}</math> !! <math>\boldsymbol{5}</math> !! <math>\boldsymbol{6}</math> !! <math>\boldsymbol{7}</math> !! <math>\boldsymbol{8}</math> !! <math>\boldsymbol{9}</math> !! <math>\boldsymbol{10}</math> !! <math>\boldsymbol{11}</math> !! <math>\boldsymbol{12}</math> !! <math>\boldsymbol{13}</math> !! <math>\boldsymbol{14}</math> !! <math>\boldsymbol{15}</math>
 
+
|-
Wszystkie liczby parzyste nie mogą być liczbami niekwadratowymi modulo <math>p</math>, bo <math>4 = 2^2 < 5 \leqslant p</math> jest parzystą liczbą kwadratową modulo <math>p</math>, czyli wśród liczb nieparzystych musi istnieć przynajmniej jedna liczba niekwadratowa modulo <math>p</math>. Wynika stąd, że zbiór <math>S</math> nie jest zbiorem pustym, zatem ma element najmniejszy. Pokażemy, że najmniejszy element zbioru <math>S</math> jest liczbą pierwszą.
+
|  || <math>2047</math> || <math>121</math> || <math>341</math> || <math>781</math> || <math>217</math> || <math>25</math> || <math>9</math> || <math>91</math> || <math>9</math> || <math>133</math> || <math>91</math> || <math>85</math> || <math>15</math> || <math>1687</math>
 
+
|-
Niech <math>3 \leqslant q \leqslant p - 2</math> będzie najmniejszą '''nieparzystą''' liczbą niekwadratową modulo <math>p</math>. Wynika stąd, że każda liczba <math>a < q</math> musi być liczbą parzystą lub liczbą kwadratową modulo <math>p</math>. Przypuśćmy, że <math>q</math> jest liczbą złożoną, czyli <math>q = a b</math>, gdzie <math>1 < a, b < q</math>. Zauważmy, że żadna z&nbsp;liczb <math>a, b</math> nie może być liczbą parzystą, bo wtedy liczba <math>q</math> również byłaby liczbą parzystą wbrew określeniu liczby <math>q</math>. Zatem obie liczby <math>a, b</math> muszą być nieparzystymi liczbami kwadratowymi, co jest niemożliwe, bo
+
|  || <math>3277</math> || <math>703</math> || <math>1387</math> || <math>1541</math> || <math>481</math> || <math>325</math> || <math>65</math> || <math>121</math> || <math>91</math> || <math>793</math> || <math>133</math> || <math>1099</math> || <math>841</math> || <math>3277</math>
 
+
|-
::<math>- 1 = \left( {\small\frac{q}{p}} \right)_{\small{\!\! J}} = \left( {\small\frac{a b}{p}} \right)_{\small{\!\! J}} = \left( {\small\frac{a}{p}} \right)_{\small{\!\! J}} \cdot \left( {\small\frac{b}{p}} \right)_{\small{\!\! J}}</math>
+
|  || <math>4033</math> || <math>1891</math> || <math>2047</math> || <math>5461</math> || <math>1111</math> || <math>703</math> || <math>481</math> || <math>671</math> || <math>1729</math> || <math>2047</math> || <math>145</math> || <math>5149</math> || <math>2743</math> || <math>6541</math>
 
+
|-
i jeden z&nbsp;czynników po prawej stronie musi być ujemny. Co oznacza, że jedna z&nbsp;liczb <math>a, b</math> jest nieparzystą liczbą niekwadratową modulo <math>p</math> mniejszą od <math>q</math> wbrew określeniu liczby <math>q</math>. Uzyskana sprzeczność pokazuje, że liczba <math>q</math> jest liczbą pierwszą. Co kończy dowód.<br/>
+
|  || <math>4681</math> || <math>3281</math> || <math>3277</math> || <math>5611</math> || <math>1261</math> || <math>2101</math> || <math>511</math> || <math>703</math> || <math>4187</math> || <math>4577</math> || <math>247</math> || <math>7107</math> || <math>3277</math> || <math>14041</math>
&#9633;
+
|-
{{\Spoiler}}
+
|   || <math>8321</math> || <math>8401</math> || <math>4033</math> || <math>7813</math> || <math>2701</math> || <math>2353</math> || <math>1417</math> || <math>1541</math> || <math>6533</math> || <math>5041</math> || <math>1649</math> || <math>8911</math> || <math>5713</math> || <math>14701</math>
 
 
 
 
 
 
 
 
 
 
{| style="border-spacing: 5px; border: 2px solid black; background: transparent;"
 
| &nbsp;'''B.''' Najmniejsze liczby niekwadratowe modulo <math>m</math>
 
 
|}
 
|}
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J66</span><br/>
 
Najmniejsze liczby niekwadratowe modulo <math>m</math> są naturalnym uogólnieniem najmniejszych liczb niekwadratowych modulo <math>p .</math> W&nbsp;jednym i&nbsp;drugim przypadku liczba <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową w&nbsp;zbiorze wszystkich liczb niekwadratowych dodatnich nie większych od <math>p</math> lub <math>m .</math> Dlatego będziemy je oznaczali również jako <math>\mathbb{n}(m) .</math>
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Definicja J67</span><br/>
 
Niech <math>m \in \mathbb{Z} \,</math> i <math>\, m \geqslant 3 .</math> Powiemy, że <math>\mathbb{n} (m)</math> jest najmniejszą liczbą niekwadratową modulo <math>m</math>, gdy <math>\mathbb{n}</math> jest najmniejszą liczbą dodatnią względnie pierwszą z <math>m</math> taką, że kongruencja
 
 
::<math>x^2 \equiv \mathbb{n} \pmod{m}</math>
 
 
nie ma rozwiązania.
 
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Przykład K20</span><br/>
 +
Tabela pokazuje ilość liczb silnie pseudopierwszych dla podstaw <math>a</math> od <math>2</math> do <math>15</math>
  
<span style="font-size: 110%; font-weight: bold;">Przykład J68</span><br/>
+
<span style="font-size: 90%; color:black;">'''for'''(a=2, 15, s=0; '''forstep'''(k=3, 10^6, 2, '''if'''( isPrimeOr<span style="background-color: #fee481;">SPSP</span>(k, a)  && !'''isprime'''(k), s++ )); '''print'''("a= ", a, "  ", s))</span>
W tabeli przedstawiliśmy najmniejsze liczby niekwadratowe modulo <math>p</math> i&nbsp;najmniejsze liczby niekwadratowe modulo <math>m .</math>
 
  
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: center; margin-right: auto;"
+
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: center; margin-right: auto;"
! <math>\boldsymbol{m}</math>  
+
! <math>\boldsymbol{a}</math> !! <math>\boldsymbol{2}</math> !! <math>\boldsymbol{3}</math> !! <math>\boldsymbol{4}</math> !! <math>\boldsymbol{5}</math> !! <math>\boldsymbol{6}</math> !! <math>\boldsymbol{7}</math> !! <math>\boldsymbol{8}</math> !! <math>\boldsymbol{9}</math> !! <math>\boldsymbol{10}</math> !! <math>\boldsymbol{11}</math> !! <math>\boldsymbol{12}</math> !! <math>\boldsymbol{13}</math> !! <math>\boldsymbol{14}</math> !! <math>\boldsymbol{15}</math>
| <math>3</math> || <math>5</math> || <math>7</math> || <math>9</math> || <math>11</math> || <math>13</math> || <math>15</math> || <math>17</math> || <math>19</math> || <math>21</math> || <math>23</math> || <math>25</math> || <math>27</math> || <math>29</math> || <math>31</math> || <math>33</math> || <math>35</math> || <math>37</math> || <math>39</math> || <math>41</math> || <math>43</math> || <math>45</math> || <math>47</math> || <math>49</math> || <math>51</math>
 
 
|-
 
|-
! <math>\boldsymbol{\mathbb{n}( p )}</math>
+
| #SPSP(<math>a</math>) <math> < 10^6</math> || <math>46</math> || <math>73</math> || <math>97</math> || <math>64</math> || <math>73</math> || <math>66</math> || <math>127</math> || <math>161</math> || <math>62</math> || <math>58</math> || <math>90</math> || <math>71</math> || <math>74</math> || <math>45</math>
| <math>2</math> || <math>2</math> || <math>3</math> || <math>-</math> || <math>2</math> || <math>2</math> || <math>-</math> || <math>3</math> || <math>2</math> || <math>-</math> || <math>5</math> || <math>-</math> || <math>-</math> || <math>2</math> || <math>3</math> || <math>-</math> || <math>-</math> || <math>2</math> || <math>-</math> || <math>3</math> || <math>2</math> || <math>-</math> || <math>5</math> || <math>-</math> || <math>-</math>
 
 
|-
 
|-
! <math>\boldsymbol{\mathbb{n}( m )}</math>
+
| #SPSP(<math>a</math>) <math> < 10^7</math> || <math>162</math> || <math>207</math> || <math>305</math> || <math>199</math> || <math>203</math> || <math>177</math> || <math>377</math> || <math>459</math> || <math>158</math> || <math>157</math> || <math>251</math> || <math>193</math> || <math>190</math> || <math>148</math>
| <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>5</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>5</math> || <math>3</math> || <math>2</math>
 
|}
 
 
 
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: center; margin-right: auto;"
 
 
|-
 
|-
! <math>\boldsymbol{m}</math>
+
| #SPSP(<math>a</math>) <math> < 10^8</math> || <math>488</math> || <math>582</math> || <math>833</math> || <math>475</math> || <math>486</math> || <math>446</math> || <math>1023</math> || <math>1241</math> || <math>437</math> || <math>430</math> || <math>666</math> || <math>472</math> || <math>440</math> || <math>398</math>
| <math>4</math> || <math>6</math> || <math>8</math> || <math>10</math> || <math>12</math> || <math>14</math> || <math>16</math> || <math>18</math> || <math>20</math> || <math>22</math> || <math>24</math> || <math>26</math> || <math>28</math> || <math>30</math> || <math>32</math> || <math>34</math> || <math>36</math> || <math>38</math> || <math>40</math> || <math>42</math> || <math>44</math> || <math>46</math> || <math>48</math> || <math>50</math> || <math>52</math>
 
 
|-
 
|-
! <math>\boldsymbol{\mathbb{n}( m )}</math>
+
| #SPSP(<math>a</math>) <math> < 10^9</math> || <math>1282</math> || <math>1514</math> || <math>2162</math> || <math>1268</math> || <math>1232</math> || <math>1163</math> || <math>2599</math> || <math>3210</math> || <math>1113</math> || <math>1125</math> || <math>1655</math> || <math>1142</math> || <math>1151</math> || <math>1041</math>
| <math>3</math> || <math>5</math> || <math>3</math> || <math>3</math> || <math>5</math> || <math>3</math> || <math>3</math> || <math>5</math> || <math>3</math> || <math>7</math> || <math>5</math> || <math>5</math> || <math>3</math> || <math>7</math> || <math>3</math> || <math>3</math> || <math>5</math> || <math>3</math> || <math>3</math> || <math>5</math> || <math>3</math> || <math>5</math> || <math>5</math> || <math>3</math> || <math>3</math>
 
 
|}
 
|}
  
 +
Widzimy, że liczb silnie pseudopierwszych jest znacznie mniej niż liczb pseudopierwszych Fermata.
  
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J69</span><br/>
 
Do wyszukiwania liczb <math>\mathbb{n} (m)</math> Czytelnik może wykorzystać prostą funkcję napisaną w&nbsp;PARI/GP
 
  
<span style="font-size: 90%; color:black;">B(m) =
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K21</span><br/>
{
+
Interesujące i&nbsp;pożyteczne będzie zbadanie najmniejszych liczb silnie pseudopierwszych dla wielu podstaw. Niech badanymi podstawami będą kolejne liczby pierwsze. Najmniejszą liczbę SPSP(<math>2</math>) już znamy: <math>2047</math>. Najmniejszą liczbę, która jest jednocześnie SPSP(<math>2</math>) i&nbsp;SPSP(<math>3</math>) musimy poszukać. Prostym poleceniem
'''local'''(p, res);
 
p = 1;
 
'''while'''( p < m,
 
        p = '''nextprime'''(p + 1);
 
        '''if'''( m%p == 0, '''next'''() );
 
        res = -1;
 
        '''for'''( k = 2, '''floor'''(m/2), '''if'''( k^2%m == p, res = 1; '''break'''() ) );
 
        '''if'''( res == -1, '''return'''(p) );
 
      );
 
}</span>
 
  
Obliczenia można wielokrotnie przyspieszyć, modyfikując kod funkcji tak, aby uwzględniał pokazane niżej właściwości oraz parzystość liczby <math>m .</math> Tutaj przedstawiamy tylko przykład, który wykorzystuje część tych możliwości.
+
<span style="font-size: 90%; color:black;">'''forstep'''(m=3, 2*10^6, 2, '''if'''( isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 2)  &&  isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 3)  &&  !'''isprime'''(m), '''print'''("m=", m) ) )</span>
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Pokaż kod|Hide=Ukryj kod}}
+
znajdujemy, że <math>m = 1373653</math>. Więcej czasu będzie wymagało znalezienie liczby jednocześnie silnie pseudopierwszej względem podstaw <math>2, 3, 5</math>. Poleceniem
<span style="font-size: 90%; color:black;">B(m) =
 
{
 
'''local'''(p, res, t);
 
t = m%8;
 
'''if'''( t == 3 || t == 5, '''return'''(2) );
 
t = m%12;
 
'''if'''( t == 4 || t == 8, '''return'''(3) );
 
t = m%24;
 
'''if'''( t == 9 || t == 15, '''return'''(2) );
 
'''if'''( t == 10 || t == 14, '''return'''(3) );
 
t = m%30;
 
'''if'''( t == 6 || t == 12 || t == 18 || t == 24, '''return'''(5) );
 
p = 1;
 
'''while'''( p < m,
 
        p = '''nextprime'''(p + 1);
 
        '''if'''( m%p == 0, '''next'''() );
 
        res = -1;
 
        '''for'''( k = 2, '''floor'''(m/2), '''if'''( k^2%m == p, res = 1; '''break'''() ) );
 
        '''if'''( res == -1, '''return'''(p) );
 
      );
 
}</span>
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J70</span><br/>
 
Niech <math>m \in \mathbb{Z} \,</math> i <math>\, m \geqslant 3 .</math> Jeżeli <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową modulo <math>m</math>, to <math>\mathbb{n}</math> jest liczbą pierwszą.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Przypuśćmy, że <math>\mathbb{n} = a b</math> jest liczbą złożoną, gdzie <math>1 < a, b < \mathbb{n} .</math> Z&nbsp;założenia <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową modulo <math>m</math>, zatem liczby <math>a, b</math> są liczbami kwadratowymi modulo <math>m .</math> Z&nbsp;definicji liczb kwadratowych muszą istnieć takie liczby <math>r, s</math>, że
 
 
 
::<math>r^2 \equiv a \pmod{m}</math>
 
 
 
::<math>s^2 \equiv b \pmod{m}</math>
 
 
 
Skąd wynika, że
 
 
 
::<math>\mathbb{n} = a b \equiv (r s)^2 \pmod{m}</math>
 
 
 
Wbrew założeniu, że <math>\mathbb{n}</math> jest liczbą niekwadratową modulo <math>m .</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J71</span><br/>
 
Niech <math>m \in \mathbb{Z}_+ \,</math> i <math>\, \mathbb{n} (m)</math> będzie najmniejszą liczbą niekwadratową modulo <math>m .</math> Pokazać, że jeżeli <math>m = 8 k \pm 3</math>, to <math>\mathbb{n} (m) = 2 .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Z twierdzenia J35 wiemy, że <math>\left( {\small\frac{2}{m}} \right)_{\small{\!\! J}} = - 1</math>, gdy <math>m = 8 k \pm 3 .</math> Wynika stąd, że <math>2</math> jest liczbą niekwadratową modulo <math>m</math>, a&nbsp;jeśli tak, to musi być najmniejszą liczbą niekwadratową modulo <math>m .</math> Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J72</span><br/>
 
Niech <math>m \in \mathbb{Z}_+ \,</math> i <math>\, \mathbb{n} (m)</math> będzie najmniejszą liczbą niekwadratową modulo <math>m .</math> Pokazać, że jeżeli spełniony jest jeden z&nbsp;warunków
 
 
 
:*&nbsp;&nbsp;<math>4 \, | \, m \;</math> i <math>\; \gcd (3, m) = 1</math>
 
:*&nbsp;&nbsp;<math>m = 12 k \pm 4</math>
 
 
 
to <math>\mathbb{n} (m) = 3 .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Zauważmy, że <math>2</math> nie może być najmniejszą liczbą niekwadratową modulo <math>m</math>, bo <math>2 \, | \, m .</math> Rozważmy kongruencję
 
 
 
::<math>x^2 \equiv 3 \pmod{m}</math>
 
 
 
Z założenia <math>4 \, | \, m</math>, co nie wyklucza możliwości, że również <math>8 \, | \, m .</math> Ponieważ <math>4 \nmid (3 - 1)</math> i <math>8 \nmid (3 - 1)</math>, to z&nbsp;twierdzenia J49 wynika, że kongruencja <math>x^2 \equiv 3 \!\! \pmod{m}</math> nie ma rozwiązania. Jeśli tylko <math>3 \nmid m</math>, to <math>\mathbb{n} (m) = 3 .</math> W&nbsp;pierwszym punkcie jest to założone wprost, w&nbsp;drugim łatwo widzimy, że <math>3 \nmid (12 k \pm 4) .</math>
 
 
 
Można też zauważyć, że żądanie, aby <math>\gcd (3, m) = 1</math>, prowadzi do dwóch układów kongruencji
 
 
 
::<math>\begin{align}
 
m &\equiv 0 \pmod{4} \\
 
m &\equiv 1 \pmod{3}
 
\end{align}</math>
 
 
 
oraz
 
 
 
::<math>\begin{align}
 
m &\equiv 0 \pmod{4} \\
 
m &\equiv 2 \pmod{3}
 
\end{align}</math>
 
 
 
którym, na mocy chińskiego twierdzenia o&nbsp;resztach, odpowiadają dwie kongruencje równoważne
 
 
 
::<math>m \equiv \pm 4 \pmod{12}</math>
 
 
 
Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J73</span><br/>
 
Niech <math>m = 24 k \pm 10 .</math> Pokazać, że <math>\mathbb{n} (m) = 3 .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
Zapiszmy <math>m</math> w&nbsp;postaci <math>m = 2 m'</math>, gdzie <math>m' = 12 k \pm 5 .</math> Gdyby kongruencja
 
 
 
::<math>x^2 \equiv 3 \pmod{2 m'}</math>
 
 
 
miała rozwiązanie, to również kongruencja
 
 
 
::<math>x^2 \equiv 3 \pmod{m'}</math>
 
 
 
miałaby rozwiązanie, ale jest to niemożliwe, bo <math>\left( {\small\frac{3}{m'}} \right)_{\small{\!\! J}} = - 1</math> (zobacz J40), czyli <math>3</math> jest liczbą niekwadratową modulo <math>m' .</math> Ponieważ <math>2 \, | \, m</math>, to <math>2</math> nie może być najmniejszą liczbą niekwadratową modulo <math>m .</math> Wynika stąd, że <math>\mathbb{n} (m) = 3 .</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J74</span><br/>
 
Niech <math>m \in \mathbb{Z}_+ \;</math> i <math>\; S_2 = \{ 3, 5, 11, 13, 19, 29, 37, 43, \ldots \}</math> będzie zbiorem liczb pierwszych <math>p</math> takich, że <math>\left( {\small\frac{2}{p}} \right)_{\small{\!\! J}} = - 1 .</math> Jeżeli <math>m</math> jest liczbą nieparzystą podzielną przez <math>p \in S_2</math>, to <math>\mathbb{n} (m) = 2 .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z założenia <math>p \, | \, m \;</math> i <math>\; \left( {\small\frac{2}{p}} \right)_{\small{\!\! J}} = - 1 .</math> Zatem kongruencja
 
 
 
::<math>x^2 \equiv 2 \pmod{m}</math>
 
 
 
nie ma rozwiązania (zobacz J49). Ponieważ <math>2 \nmid m</math>, to <math>\mathbb{n} (m) = 2 .</math>
 
 
 
Uwaga: zbiór <math>S_2</math> tworzą liczby pierwsze postaci <math>8 k \pm 3</math> (zobacz J35).<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J75</span><br/>
 
Niech <math>m \in \mathbb{Z}_+ \;</math> i <math>\; S_3 = \{ 5, 7, 17, 19, 29, 31, 41, 43, \ldots \}</math> będzie zbiorem liczb pierwszych <math>p</math> takich, że <math>\left( {\small\frac{3}{p}} \right)_{\small{\!\! J}} = - 1 .</math> Jeżeli <math>m</math> jest liczbą parzystą niepodzielną przez <math>3</math> i&nbsp;podzielną przez <math>p \in S_3</math>, to <math>\mathbb{n} (m) = 3 .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z założenia <math>p \, | \, m \;</math> i <math>\; \left( {\small\frac{3}{p}} \right)_{\small{\!\! J}} = - 1 .</math> Zatem kongruencja
 
 
 
::<math>x^2 \equiv 3 \pmod{m}</math>
 
 
 
nie ma rozwiązania (zobacz J49). Ponieważ <math>2 \, | \, m</math> i <math>3 \nmid m</math>, to <math>\mathbb{n} (m) = 3 .</math>
 
 
 
Uwaga: zbiór <math>S_3</math> tworzą liczby pierwsze postaci <math>12 k \pm 5</math> (zobacz J40).<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J76</span><br/>
 
Jeżeli <math>m</math> jest liczbą dodatnią podzielną przez <math>6</math> i&nbsp;niepodzielną przez <math>5</math>, to <math>\mathbb{n} (m) = 5 .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z założenia <math>3 \, | \, m \;</math> i <math>\; \left( {\small\frac{5}{3}} \right)_{\small{\!\! J}} = \left( {\small\frac{2}{3}} \right)_{\small{\!\! J}} = - 1 .</math> Zatem kongruencja
 
  
::<math>x^2 \equiv 5 \pmod{m}</math>
+
<span style="font-size: 90%; color:black;">'''forstep'''(m=3, 26*10^6, 2, '''if'''( isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 2)  &&  isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 3)  &&  isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 5)  &&  !'''isprime'''(m), '''print'''("m=", m) ) )</span>
  
nie ma rozwiązania (zobacz J49). Ponieważ <math>2 \, | \, m</math>, <math>3 \, | \, m</math> i <math>5 \nmid m</math>, to <math>\mathbb{n} (m) = 5 .</math><br/>
+
znajdujemy, że szukana liczba to <math>m = 25326001</math>.
&#9633;
 
{{\Spoiler}}
 
  
  
 +
Stosując bardziej wyrafinowane metody<ref name="SPSPtoNbases"/><ref name="Jaeschke1"/> znaleziono wartości liczb silnie pseudopierwszych względem wielu podstaw, które są kolejnymi liczbami pierwszymi, dla większej ilości liczb pierwszych<ref name="A014233"/>. Dla przykładu
  
<span style="font-size: 110%; font-weight: bold;">Uwaga J77</span><br/>
+
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: right; margin-right: auto;"
Uogólnienie twierdzenia J76 będzie wymagało udowodnienia twierdzenia pomocniczego J78.
+
! <math>\boldsymbol{n}</math> !! <math>\boldsymbol{m}</math>
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J78</span><br/>
 
Niech <math>p \geqslant 5</math> będzie liczbą pierwszą. Istnieje liczba pierwsza nieparzysta <math>q < p</math> taka, że <math>\left( {\small\frac{p}{q}} \right)_{\small{\!\! J}} = - 1 .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Łatwo sprawdzamy, że
 
 
 
::<math>\left( {\small\frac{5}{3}} \right)_{\small{\!\! J}} = \left( {\small\frac{7}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{11}{3}} \right)_{\small{\!\! J}} = - 1</math>
 
 
 
(zobacz J35&nbsp;p.7). Zatem dowód wystarczy przeprowadzić dla <math>p \geqslant 13</math>.
 
 
 
'''Przypadek pierwszy:''' <math>\boldsymbol{p \equiv 1 \!\! \pmod{4}}</math>
 
 
 
Niech liczba <math>q</math> będzie najmniejszą '''nieparzystą''' liczbą niekwadratową modulo <math>p</math>. Z&nbsp;twierdzenia J65 wiemy, że dla <math>p \geqslant 5</math> liczba <math>q</math> jest liczbą pierwszą i&nbsp;jest mniejsza od <math>p</math>. Ponieważ <math>p \equiv 1 \!\! \pmod{4}</math>, to z&nbsp;twierdzenia J35&nbsp;p.9 otrzymujemy natychmiast
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{p}{q}} \right)_{\small{\!\! J}} = \left( {\small\frac{q}{p}} \right)_{\small{\!\! J}} = - 1</math>
 
</div>
 
 
 
'''Przypadek drugi:''' <math>\boldsymbol{p \equiv 3 \!\! \pmod{4}}</math>
 
 
 
Z założenia <math>p \equiv 3 \!\! \pmod{4}</math>, zatem <math>p = 4 k + 3</math>. Liczba <math>k</math> może być postaci <math>k = 3 j</math>, <math>\, k = 3 j + 1 \,</math> i <math>\, k = 3 j + 2</math>, co odpowiada liczbom pierwszym postaci <math>p = 12 j + 3</math>, <math>\, p = 12 j + 7 \,</math> i <math>\, p = 12 j + 11</math>.
 
 
 
Ponieważ nie ma liczb pierwszych <math>p \geqslant 13</math> i&nbsp;będących postaci <math>p = 12 j + 3</math>, to pozostaje rozważyć przypadki <math>p = 12 j + 7 \,</math> i <math>\, p = 12 j + 11 .</math>
 
 
 
'''A. Liczby pierwsze postaci ''' <math>\boldsymbol{p = 12 j + 11}</math>
 
 
 
Wiemy, że w tym przypadku <math>\left( {\small\frac{3}{p}} \right)_{\small{\!\! J}} = + 1</math> (zobacz J40). Mamy
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{p}{3}} \right)_{\small{\!\! J}} = - \left( {\small\frac{3}{p}} \right)_{\small{\!\! J}} = - 1</math>
 
</div>
 
 
 
Czyli wystarczy przyjąć <math>q = 3</math>.
 
 
 
'''B. Liczby pierwsze postaci ''' <math>\boldsymbol{p = 12 j + 7}</math>
 
 
 
Wiemy, że w tym przypadku <math>\left( {\small\frac{- 1}{p}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{p}} \right)_{\small{\!\! J}} = - 1</math> (zobacz J35&nbsp;p.6 oraz J40). Otrzymujemy
 
 
 
<div style="margin-top: 1em; margin-bottom: 1em;">
 
::<math>\left( {\small\frac{p}{p - 12}} \right)_{\small{\!\! J}} = - \left( {\small\frac{p - 12}{p}} \right)_{\small{\!\! J}} = - \left( {\small\frac{- 12}{p}} \right)_{\small{\!\! J}} = \left[ - \left( {\small\frac{- 1}{p}} \right)_{\small{\!\! J}} \right] \cdot \left( {\small\frac{2^2}{p}} \right)_{\small{\!\! J}} \cdot \left( {\small\frac{3}{p}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{p}} \right)_{\small{\!\! J}} = -1</math>
 
</div>
 
 
 
Ponieważ liczba <math>p - 12</math> jest nieparzysta, to musi istnieć nieparzysty dzielnik pierwszy <math>q < p</math> liczby <math>p - 12</math> taki, że <math>\left( {\small\frac{p}{q}} \right)_{\small{\!\! J}} = - 1</math>. W&nbsp;przeciwnym razie z&nbsp;twierdzenia J35&nbsp;p.4 mielibyśmy <math>\left( {\small\frac{p}{p - 12}} \right)_{\small{\!\! J}} = 1</math>. Co kończy dowód.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J79</span><br/>
 
Niech <math>m \in \mathbb{Z}_+</math> i <math>p \geqslant 5</math> będzie liczbą pierwszą. Jeżeli iloczyn wszystkich liczb pierwszych mniejszych od <math>p</math> dzieli <math>m</math> i <math>p \nmid m</math>, to <math>\mathbb{n} (m) = p</math>.
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Z twierdzenia J78 wiemy, że istnieje liczba pierwsza nieparzysta <math>q < p</math> taka, że <math>\left( {\small\frac{p}{q}} \right)_{\small{\!\! J}} = - 1 .</math> Z&nbsp;założenia <math>q \, | \, m</math>, zatem kongruencja
 
 
 
::<math>x^2 \equiv p \pmod{m}</math>
 
 
 
nie ma rozwiązania (zobacz J49). Ponieważ wszystkie liczby pierwsze mniejsze od <math>p</math> dzielą <math>m</math>, to <math>\mathbb{n} (m) = p</math>. Co należało pokazać.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Zadanie J80</span><br/>
 
Pokazać, że podanym w&nbsp;pierwszej kolumnie postaciom liczby <math>m</math> odpowiadają wymienione w&nbsp;drugiej kolumnie wartości <math>\mathbb{n} (m) .</math>
 
 
 
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: left; margin-right: auto;"
 
|-
 
! Postać liczby <math>\boldsymbol{m}</math> || <math>\boldsymbol{𝕟(m)}</math> || Uwagi
 
 
|-
 
|-
| <math>m=24k \pm 9</math> || style="text-align:center;" | <math>2</math> || rowspan="3" style="text-align:center;" | J74
+
| <math>1</math> || <math>2047</math>
 
|-
 
|-
| <math>m=120k \pm 25</math> || style="text-align:center;" | <math>2</math>
+
| <math>2</math> || <math>1373653</math>
 
|-
 
|-
| <math>m=120k \pm 55</math> || style="text-align:center;" | <math>2</math>
+
| <math>3</math> || <math>25326001</math>
 
|-
 
|-
| <math>m=120k \pm 50</math> || style="text-align:center;" | <math>3</math> || style="text-align:center;" | J75
+
| <math>4</math> || <math>3215031751</math>
 
|-
 
|-
| <math>m=30k \pm 6</math> || style="text-align:center;" | <math>5</math> || rowspan="2" style="text-align:center;" | J76, J79
+
| <math>5</math> || <math>2152302898747</math>
 
|-
 
|-
| <math>m=30k \pm 12</math> || style="text-align:center;" | <math>5</math>
+
| <math>6</math> || <math>3474749660383</math>
 
|-
 
|-
| <math>m=210k \pm 30</math> || style="text-align:center;" | <math>7</math> || rowspan="3" style="text-align:center;" | J79
+
| <math>7</math> || <math>341550071728321</math>
|-
 
| <math>m=210k \pm 60</math> || style="text-align:center;" | <math>7</math>  
 
|-
 
| <math>m=210k \pm 90</math> || style="text-align:center;" | <math>7</math>  
 
 
|}
 
|}
  
 +
Podane w&nbsp;prawej kolumnie liczby <math>m</math> są najmniejszymi liczbami jednocześnie silnie pseudopierwszymi względem podstaw <math>p_1, \ldots, p_n</math>. Zauważmy, że wyniki te mają bardzo praktyczne zastosowanie. Przykładowo, jeśli <math>m</math> przechodzi test Millera-Rabina dla siedmiu podstaw <math>a = 2, 3, 5, 7, 11, 13, 17</math> i&nbsp;jest liczbą mniejszą od <math>3.41 \cdot 10^{14}</math>, to jest z&nbsp;pewnością liczbą pierwszą.
  
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J81</span><br/>
 
Niech <math>m</math> będzie liczbą nieparzystą, a <math>\mathbb{n} (m)</math> będzie najmniejszą liczbą niekwadratową modulo <math>m .</math> Mamy
 
  
::<math>\begin{array}{lll}
 
  \mathbb{n} (2 m) >\mathbb{n} (m) &  & \text{gdy} \;\; \mathbb{n} (m) = 2 \\
 
  \mathbb{n} (2 m) =\mathbb{n} (m) &  & \text{gdy} \;\; \mathbb{n} (m) > 2
 
\end{array}</math>
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
+
== Uzupełnienie ==
  
'''Punkt 1.'''
+
<span style="font-size: 110%; font-weight: bold;">Uwaga K22</span><br/>
 +
W funkcji <code>isPrimeOr<span style="background-color: #fee481;">SPSP</span>()</code> wykorzystaliśmy zaimplementowane w&nbsp;PARI/GP funkcje:
  
W przypadku, gdy <math>\mathbb{n} (m) = 2</math>, mamy <math>\mathbb{n} (2 m) > 2 = \mathbb{n} (m)</math>, bo <math>\mathbb{n} (2 m)</math> musi być liczbą względnie pierwszą z <math>2 m .</math>
+
* <code>gcd(a, b)</code> – znajduje największy wspólny dzielnik liczb a i b
 +
* <code>valuation(a, b)</code> – znajduje największą wartość liczby <math>r</math> taką, że <math>b^r | a</math>
  
'''Punkt 2.'''
+
Wprowadzenie tych funkcji pozwoliło zwiększyć czytelność kodu, ale bez trudu możemy sami je napisać:
  
Z definicji najmniejszej liczby niekwadratowej modulo <math>m</math> wiemy, że kongruencja
+
<span style="font-size: 90%; color:black;">gcd2(a, b) =
 +
{
 +
'''while'''( b <> 0, a = b; b = a % b );
 +
'''return'''(a);
 +
}</span>
  
::<math>x^2 \equiv \mathbb{n} (m) \pmod{m}</math>
 
  
nie ma rozwiązania. Oznacza to, że istnieje liczba pierwsza nieparzysta <math>p</math> taka, że <math>p \, | \, m \;</math> i <math>\; \left( {\small\frac{\mathbb{n} (m)}{p}} \right)_{\small{\!\! J}} = - 1 .</math> Ponieważ <math>p \, | \, 2 m</math>, to wynika stąd natychmiast, że kongruencja
+
  <span style="font-size: 90%; color:black;">valuation2(a, b) =
 
 
::<math>x^2 \equiv \mathbb{n} (m) \pmod{2 m}</math>
 
 
 
również nie ma rozwiązania (zobacz J49).
 
 
 
Zatem <math>\mathbb{n} (2 m) \leqslant \mathbb{n} (m) .</math> Niech <math>q</math> będzie liczbą pierwszą taką, że <math>2 < q <\mathbb{n} (m) .</math> Kongruencję
 
 
 
::<math>x^2 \equiv q \pmod{2 m} \qquad \qquad (1)</math>
 
 
 
możemy zapisać w&nbsp;postaci układu kongruencji równoważnych (zobacz J1)
 
 
 
::<math>\begin{align}
 
  x^2 & \equiv q \pmod{m} \qquad \qquad \;\: (2) \\
 
x^2 & \equiv q \pmod{2} \qquad \qquad \;\;\,\, (3) \\
 
\end{align}</math>
 
 
 
Z definicji <math>q</math> jest liczbą kwadratową modulo <math>m</math>, zatem kongruencja <math>(2)</math> ma rozwiązanie – oznaczmy to rozwiązanie przez <math>x_0 .</math> Łatwo zauważamy, że liczba
 
 
 
::<math>x'_0 =
 
  \begin{cases}
 
  \;\;\;\; x_0 & \text{gdy} \quad x_0 \equiv 1 \pmod{2} \\
 
  x_0 + m & \text{gdy} \quad x_0 \equiv 0 \pmod{2} \\
 
  \end{cases}</math>
 
 
 
jest rozwiązaniem układu kongruencji <math>(2)</math> i <math>(3)</math>, a&nbsp;tym samym kongruencja <math>(1)</math> ma rozwiązanie dla każdego <math>2 < q <\mathbb{n} (m) .</math> Wynika stąd, że <math>\mathbb{n} (2 m) =\mathbb{n} (m) .</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J82</span><br/>
 
Niech <math>m</math> będzie liczbą nieparzystą, a <math>\mathbb{n} (m)</math> będzie najmniejszą liczbą niekwadratową modulo <math>m .</math> Mamy
 
 
 
::<math>\begin{array}{lllll}
 
  \mathbb{n} (4 m) \geqslant 5 & & \mathbb{n} (m) = 2        & & \text{gdy } \;\; 3 \, | \, m \\
 
  \mathbb{n} (4 m) = 3        & & \mathbb{n} (m) \geqslant 2 & & \text{gdy } \;\; 3 \nmid m \\
 
\end{array}</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
 
 
'''Punkt 1.'''
 
 
 
Z twierdzenia J74 wynika, że w&nbsp;przypadku, gdy <math>3 \, | \, m</math>, to <math>\mathbb{n} (m) = 2 .</math> Ponieważ <math>2 \, | \, 4 m</math> i <math>3 \, | \, 4 m</math>, to <math>\mathbb{n} (4 m) \geqslant 5 .</math>
 
 
 
'''Punkt 2.'''
 
 
 
Ponieważ <math>m</math> jest liczbą nieparzystą, to <math>8 \nmid 4 m</math>, ale <math>4 \, | \, 4 m \;</math> i <math>\; 4 \nmid (3 - 1)</math>, zatem z&nbsp;twierdzenia J49 wynika, że kongruencja
 
 
 
::<math>x^2 \equiv 3 \pmod{4 m}</math>
 
 
 
nie ma rozwiązania. Ponieważ <math>2 \, | \, 4 m \;</math> i <math>\; 3 \nmid 4 m</math>, to <math>\mathbb{n} (4 m) = 3 .</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J83</span><br/>
 
Niech <math>p</math> będzie liczbą pierwszą nieparzystą. Jeżeli <math>a</math> jest liczbą niekwadratową modulo <math>p \,</math> i <math>\, p \, | \, m</math>, to <math>a</math> jest liczbą niekwadratową modulo <math>m .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Wiemy, że liczba <math>a</math> jest liczbą kwadratową modulo <math>m</math> wtedy i&nbsp;tylko wtedy, gdy kongruencja
 
 
 
::<math>x^2 \equiv a \pmod{m}</math>
 
 
 
ma rozwiązanie. Przypuśćmy, że liczba <math>a</math> jest liczbą kwadratową modulo <math>m .</math> Zatem istnieje taka liczba <math>k \in \mathbb{Z}</math>, że
 
 
 
::<math>k^2 \equiv a \pmod{m}</math>
 
 
 
Ponieważ z&nbsp;założenia <math>p \, | \, m</math>, to prawdziwa jest też kongruencja
 
 
 
::<math>k^2 \equiv a \pmod{p}</math>
 
 
 
co przeczy założeniu, że liczba <math>a</math> jest liczbą niekwadratową modulo <math>p .</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J84</span><br/>
 
Niech <math>m \geqslant 3</math> będzie liczbą nieparzystą. Jeżeli liczba <math>\mathbb{n} = \mathbb{n} (m)</math> jest najmniejszą liczbą niekwadratową modulo <math>m</math>, to istnieje taki dzielnik pierwszy <math>p</math> liczby <math>m</math>, że <math>\mathbb{n}</math> jest najmniejszą liczbą niekwadratową modulo <math>p .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Przypuśćmy, że taki dzielnik pierwszy nie istnieje. Zatem mamy zbiór dzielników pierwszych liczby <math>m</math>: <math>\{ p_1, \ldots, p_s \}</math> i&nbsp;powiązany z&nbsp;dzielnikami pierwszymi <math>p_k</math> zbiór najmniejszych liczb niekwadratowych modulo <math>p_k</math>: <math>\{ \mathbb{n}_1, \ldots, \mathbb{n}_s \}</math>, z&nbsp;których każda jest liczbą niekwadratową modulo <math>m</math> (zobacz J83). Wynika stąd, że liczba <math>\mathbb{n} = \mathbb{n} (m)</math> musi być mniejsza od każdej z&nbsp;liczb <math>\mathbb{n}_k .</math>
 
 
 
Z definicji liczba <math>\mathbb{n} = \mathbb{n} (m)</math> jest liczbą niekwadratową modulo <math>m</math>, co oznacza, że kongruencja
 
 
 
::<math>x^2 \equiv \mathbb{n} \pmod{m}</math>
 
 
 
nie ma rozwiązania. Niech <math>m = p^{\alpha_1}_1 \cdot \ldots \cdot p^{\alpha_s}_s .</math> Zatem przynajmniej jedna z&nbsp;kongruencji
 
 
 
::<math>x^2 \equiv \mathbb{n} \pmod{p^{\alpha_k}_k}</math>
 
 
 
musi nie mieć rozwiązania (zobacz J11). Z&nbsp;twierdzenia J43 wiemy, że wtedy kongruencja
 
 
 
::<math>x^2 \equiv \mathbb{n} \pmod{p_k}</math>
 
 
 
również nie ma rozwiązania. Zatem <math>\mathbb{n}</math> jest liczbą niekwadratową modulo <math>p_k \,</math> i <math>\, \mathbb{n} < \mathbb{n}_k</math>, co przeczy definicji liczby <math>\mathbb{n}_k .</math><br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J85</span><br/>
 
Niech <math>m \geqslant 3</math> będzie liczbą nieparzystą. Jeżeli <math>m = p^{\alpha_1}_1 \cdot \ldots \cdot p^{\alpha_s}_s</math>, to
 
 
 
::<math>\mathbb{n}(m) = \min ( \mathbb{n} (p_1), \ldots, \mathbb{n} (p_s) )</math>
 
 
 
gdzie <math>\mathbb{n}(m)</math> jest najmniejszą liczbą kwadratową modulo <math>m</math>, a <math>\mathbb{n}(p_k)</math> są najmniejszymi liczbami kwadratowymi modulo <math>p_k .</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Twierdzenie to jest prostym wnioskiem z&nbsp;twierdzenia J84, ale musimy jeszcze pokazać, że <math>\gcd (\mathbb{n} (m), m) = 1 .</math> Przypuśćmy, że <math>p_k |\mathbb{n} (m)</math> dla pewnego <math>1 \leqslant k \leqslant s .</math> Ponieważ <math>\mathbb{n} (m)</math> jest liczbą pierwszą, to musi być <math>\mathbb{n} (m) = p_k</math>, ale wtedy
 
 
 
::<math>\mathbb{n} (p_k) < p_k =\mathbb{n} (m) \leqslant \mathbb{n} (p_k)</math>
 
 
 
Otrzymana sprzeczność dowodzi, że <math>\mathbb{n} (m)</math> jest względnie pierwsza z&nbsp;każdą z&nbsp;liczb pierwszych <math>p_i</math>, gdzie <math>1 \leqslant i \leqslant s .</math> Co kończy dowód.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J86</span><br/>
 
Niech <math>m \geqslant 3</math> będzie liczbą nieparzystą, a <math>\mathbb{n}(m)</math> jest najmniejszą liczbą niekwadratową modulo <math>m .</math> Prawdziwe są oszacowania
 
 
 
::<math>\mathbb{n}(m) < \sqrt{m} + {\small\frac{1}{2}} \qquad \qquad \qquad \;\;\, \text{dla } m \geqslant 3</math>
 
 
 
::<math>\mathbb{n}(m) \leqslant 1.1 \cdot m^{1 / 4} \log m \qquad \qquad \text{dla } m \geqslant 5</math>
 
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Niech <math>p</math> będzie dzielnikiem pierwszym liczby <math>m</math> takim, że <math>\mathbb{n}(m) = \mathbb{n} (p)</math> (z twierdzenia J84 wiemy, że taki dzielnik istnieje). Jeżeli prawdziwe jest oszacowanie <math>\mathbb{n}(p) < F (p)</math>, gdzie <math>F(x)</math> jest funkcją rosnącą, to
 
 
 
::<math>\mathbb{n}(m) = \mathbb{n} (p) < F (p) \leqslant F (m)</math>
 
 
 
Podane w&nbsp;twierdzeniu oszacowania wynikają natychmiast z&nbsp;twierdzeń J61 i&nbsp;J62.<br/>
 
&#9633;
 
{{\Spoiler}}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J87</span><br/>
 
Liczby <math>\mathbb{n} (m)</math> są zaskakująco małe. Średnia wartość <math>\mathbb{n} = \mathbb{n} (m)</math> wynosi<ref name="Pollack1"/>
 
 
 
::<math>\lim_{x \to \infty} {\small\frac{1}{x}} \sum_{m \leqslant x} \mathbb{n} (m) = 2 + \sum_{k = 3}^{\infty} {\small\frac{p_k - 1}{p_1 \cdot \ldots \cdot p_{k - 1}}} = 2.920050977 \ldots</math>
 
 
 
 
 
 
 
 
 
 
 
{| style="border-spacing: 5px; border: 2px solid black; background: transparent;"
 
| &nbsp;'''C.''' Najmniejsze dodatnie liczby niekwadratowe <math>a</math> takie, że <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1</math>&nbsp;
 
|}
 
 
 
<span style="font-size: 110%; font-weight: bold;">Przykład J88</span><br/>
 
W tabeli przedstawiliśmy najmniejsze liczby niekwadratowe modulo <math>p</math>, najmniejsze liczby niekwadratowe modulo <math>m</math> i&nbsp;najmniejsze dodatnie liczby niekwadratowe <math>a</math> takie, że <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1</math>.
 
 
 
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: center; margin-right: auto;"
 
! <math>\boldsymbol{m}</math>
 
| <math>3</math> || <math>5</math> || <math>7</math> || <math>9</math> || <math>11</math> || <math>13</math> || <math>15</math> || <math>17</math> || <math>19</math> || <math>21</math> || <math>23</math> || <math>25</math> || <math>27</math> || <math>29</math> || <math>31</math> || <math>33</math> || <math>35</math> || <math>37</math> || <math>39</math> || <math>41</math> || <math>43</math> || <math>45</math> || <math>47</math> || <math>49</math> || <math>51</math>
 
|-
 
!  <math>\boldsymbol{\mathbb{n}( p )}</math>
 
| <math>2</math> || <math>2</math> || <math>3</math> || <math>-</math> || <math>2</math> || <math>2</math> || <math>-</math> || <math>3</math> || <math>2</math> || <math>-</math> || <math>5</math> || <math>-</math> || <math>-</math> || <math>2</math> || <math>3</math> || <math>-</math> || <math>-</math> || <math>2</math> || <math>-</math> || <math>3</math> || <math>2</math> || <math>-</math> || <math>5</math> || <math>-</math> || <math>-</math>
 
|-
 
!  <math>\boldsymbol{\mathbb{n}( m )}</math>
 
| <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>5</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>5</math> || <math>3</math> || <math>2</math>
 
|-
 
!  <math>\boldsymbol{c( m )}</math>
 
| <math>2</math> || <math>2</math> || <math>3</math> || <math>-</math> || <math>2</math> || <math>2</math> || <math>7</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>5</math> || <math>-</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math>5</math> || <math>2</math> || <math>2</math> || <math>7</math> || <math>3</math> || <math>2</math> || <math>2</math> || <math>5</math> || <math>-</math> || <math>2</math>
 
|}
 
 
 
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J89</span><br/>
 
Do wyszukiwania liczb <math>c = c (m)</math> Czytelnik może wykorzystać prostą funkcję napisaną w&nbsp;PARI/GP
 
 
 
<span style="font-size: 90%; color:black;">C(m) =  
 
 
  {
 
  {
  '''if'''( m%2 == 0, '''return'''(0) );
+
  '''local'''(s);
  '''if'''( '''issquare'''(m), '''return'''(0) );
+
  s = 0;
  '''forprime'''(p = 2, m, '''if'''( jacobi(p, m) == -1, '''return'''(p) ));
+
  '''while'''(a % b == 0, s++; a = a / b);
 +
'''return'''(s);
 
  }</span>
 
  }</span>
 
 
 
<span style="font-size: 110%; font-weight: bold;">Uwaga J90</span><br/>
 
Najmniejsze dodatnie liczby niekwadratowe <math>a</math> takie, że <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1</math> oznaczyliśmy jako <math>c(m)</math>. Zauważmy, że są to liczby inne od <math>\mathbb{n}(p)</math> i <math>\mathbb{n}(m)</math>. Wystarczy zwrócić uwagę na występujące w&nbsp;tabeli liczby <math>\mathbb{n}(p)</math>, <math>\mathbb{n}(m)</math> i <math>c(m)</math> dla <math>m = 15, 33, 39</math>. Różnice wynikają z&nbsp;innej definicji liczb <math>c(m)</math> – jeżeli liczba <math>a</math> jest liczbą niekwadratową modulo <math>m</math>, to symbol Jacobiego <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}}</math> nie musi być równy <math>- 1</math>. I&nbsp;tak czasami bywa, co bardzo dobrze pokazuje powyższa tabela.
 
 
Ponieważ <math>c(m)</math> nie zawsze będzie najmniejszą liczbą kwadratową modulo <math>m</math>, to mamy natychmiast oszacowanie: <math>c(m) \geqslant \mathbb{n} (m)</math> (poza przypadkami, gdy <math>m = n^2</math>).
 
 
Dla <math>c(m)</math> nie są prawdziwe oszacowania podane w&nbsp;twierdzeniu J61. Łatwo zauważamy, że
 
 
::<math>c = c (15) = 7 > \sqrt{15} + {\small\frac{1}{2}} \approx 4.37</math>
 
 
::<math>c = c (39) = 7 > \sqrt{39} + {\small\frac{1}{2}} \approx 6.74</math>
 
 
::<math>c = c (105) = 11 > \sqrt{105} + {\small\frac{1}{2}} \approx 10.75</math>
 
 
::<math>c = c (231) = 17 > \sqrt{231} + {\small\frac{1}{2}} \approx 15.7</math>
 
 
Nie ma więcej takich przypadków dla <math>m < 10^9</math>.
 
 
 
 
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J91</span><br/>
 
Niech <math>c, m \in \mathbb{Z}_+</math> i&nbsp;niech <math>m \geqslant 3</math> będzie liczbą nieparzystą, a <math>c</math> będzie najmniejszą liczbą taką, że <math>\left( {\small\frac{c}{m}} \right)_{\small{\!\! J}} = - 1</math>. Liczba <math>c</math> musi być liczbą pierwszą.
 
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 
Przypuśćmy, że <math>c = a b</math> jest liczbą złożoną, gdzie <math>1 < a, b < c</math>. Mamy
 
 
::<math>- 1 = \left( {\small\frac{c}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{a b}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}}</math><math>\left( {\small\frac{b}{m}} \right)_{\small{\!\! J}}</math>
 
 
Zatem jeden z&nbsp;czynników po prawej stronie musi być równy <math>- 1</math> wbrew definicji liczby <math>c</math>.<br/>
 
&#9633;
 
{{\Spoiler}}
 
  
  
Linia 2432: Linia 569:
 
<references>
 
<references>
  
<ref name="CRT1">Wikipedia, ''Chińskie twierdzenie o&nbsp;resztach'', ([https://pl.wikipedia.org/wiki/Chi%C5%84skie_twierdzenie_o_resztach Wiki-pl]), ([https://en.wikipedia.org/wiki/Chinese_remainder_theorem Wiki-en])</ref>
+
<ref name="Carmichael1">W. R. Alford, Andrew Granville and Carl Pomerance, ''There are Infinitely Many Carmichael Numbers'', Annals of Mathematics, '''140''', (1994),  703-722</ref>
 
 
<ref name="CRT2">CRT to często używany skrót od angielskiej nazwy twierdzenia: ''Chinese remainder theorem''</ref>
 
  
<ref name="logic1">Wikipedia, ''Logical equivalence'', ([https://en.wikipedia.org/wiki/Logical_equivalence Wiki-en])</ref>
+
<ref name="Carmichael2">Glyn Harman, ''On the Number of Carmichael Numbers up to x'', Bull. London Math. Soc. 37 (2005) 641–650</ref>
  
<ref name="sumazbiorow">Wikipedia, ''Zasada włączeń i&nbsp;wyłączeń'', ([https://pl.wikipedia.org/wiki/Zasada_w%C5%82%C4%85cze%C5%84_i_wy%C5%82%C4%85cze%C5%84 Wiki-pl]), ([https://en.wikipedia.org/wiki/Inclusion%E2%80%93exclusion_principle Wiki-en])</ref>
+
<ref name="Carmichael3">Glyn Harman, ''Watt’s Mean Value Theorem and Carmichael Numbers'', International Journal of Number Theory, Vol. 4, No. 2 (2008) 241–248</ref>
  
<ref name="jacobi1">Wikipedia, ''Symbol Jacobiego'', ([https://pl.wikipedia.org/wiki/Symbol_Jacobiego Wiki-pl]), ([https://en.wikipedia.org/wiki/Jacobi_symbol Wiki-en])</ref>
+
<ref name="Miller1">Gary L. Miller, ''Riemann's Hypothesis and Tests for Primality'', Journal of Computer and System Sciences '''13''', 300-317 (1976)</ref>
  
<ref name="legendre1">Wikipedia, ''Symbol Legendre’a'', ([https://pl.wikipedia.org/wiki/Symbol_Legendre%E2%80%99a Wiki-pl]), ([https://en.wikipedia.org/wiki/Legendre_symbol Wiki-en])</ref>
+
<ref name="Rabin1">Michael O. Rabin, ''Probabilistic Algorithm for Testing Primality'', Journal of Number Theory '''12''', 128-138 (1980)</ref>
  
<ref name="Norton1">Karl K. Norton, ''Numbers with Small Prime Factors, and the Least ''k''th Power Non-Residue'', Memoirs of the American Mathematical Society, No. 106 (1971)</ref>
+
<ref name="SPSPtoNbases">Carl Pomerance, J. L. Selfridge and Samuel S. Wagstaff, Jr., ''The Pseudoprimes to 25*10^9'', Mathematics of Computation, Vol. 35, No. 151 (1980), 1003-1026</ref>
  
<ref name="Trevino1">Enrique Treviño, ''The least k-th power non-residue'', Journal of Number Theory, Volume 149 (2015)</ref>
+
<ref name="Jaeschke1">Gerhard Jaeschke, ''On Strong Pseudoprimes to Several Bases'', Mathematics of Computation, Vol. 61, No. 204 (Oct., 1993), 915-926</ref>
  
<ref name="Trevino2">Kevin J. McGown and Enrique Treviño, ''The least quadratic non-residue'', Mexican Mathematicians in the World (2021)</ref>
+
<ref name="A014233">On-Line Encyclopedia of Integer Sequences, ''Smallest odd number for which Miller-Rabin primality test on bases <= n-th prime does not reveal compositeness'', ([https://oeis.org/A014233 A014233])</ref>
 
 
<ref name="Erdos1">Paul Erdős, ''Számelméleti megjegyzések I'', Afar. Lapok, v. 12 (1961)</ref>
 
 
 
<ref name="Pollack1">Paul Pollack, ''The average least quadratic nonresidue modulo <math>m</math> and other variations on a&nbsp;theme of Erdős'', Journal of Number Theory, Vol. 132 (2012), No. 6, pp. 1185-1202.</ref>
 
  
 
</references>
 
</references>
 
 
 
 
 
 
  
  

Wersja z 10:09, 26 kwi 2023

11.11.2022



Potęgowanie modulo

Uwaga K1
Z twierdzenia Fermata (zobacz J19) wynika, że jeżeli liczby [math]\displaystyle{ a }[/math] i [math]\displaystyle{ m }[/math] są względnie pierwsze oraz [math]\displaystyle{ m }[/math] nie dzieli liczby [math]\displaystyle{ a^{m - 1} - 1 }[/math], to [math]\displaystyle{ m }[/math] jest liczbą złożoną. Każde twierdzenie pozwalające wykryć złożoność liczby może być wykorzystane do badania pierwszości liczb. Twierdzenia takie nie dają całkowitej pewności, że badana liczba jest pierwsza. Mamy na przykład [math]\displaystyle{ 341 = 11 \cdot 31 }[/math], ale [math]\displaystyle{ 341 | (2^{340} - 1) }[/math], bo

[math]\displaystyle{ 2^{340} - 1 = 2239744742177804210557442280568444278121645497234649534899989100963791871180160945380877493271607115775 }[/math]
[math]\displaystyle{ \;\;\; = 341 \cdot 6568166399348399444449977362370804334667582103327417990909058947107894050381703652143335757394742275 }[/math]

Widzimy, że nawet dla niewielkiej liczby [math]\displaystyle{ 341 }[/math], potęga [math]\displaystyle{ 2^{340} - 1 }[/math] jest liczbą ogromną. Jeśli ta metoda ma mieć jakiekolwiek zastosowanie, to musimy znaleźć inny sposób obliczania reszty z dzielenia [math]\displaystyle{ a^n }[/math] przez [math]\displaystyle{ m }[/math], czyli potęgowania modulo [math]\displaystyle{ m }[/math].


Uwaga K2
Wykorzystując wzór rekurencyjny

[math]\displaystyle{ a^n = \left\{ \begin{array}{cll} a & & \text{gdy } n = 1\\ (a^2)^{{\large\frac{n}{2}}} & & \text{gdy } n \text{ jest parzyste}\\ a \cdot (a^2)^{{\large\frac{n - 1}{2}}} & & \text{gdy } n \text{ jest nieparzyste} \end{array} \right. }[/math]


możemy napisać w PARI/GP prosty program do potęgowania modulo:

modPower(a, n, m) = 
\\ a - podstawa, n - wykładnik, m - moduł
{
local(w);
if( m == 1, return(0) );
a = a % m;
w = 1;
while( n > 0,
       if( n % 2 == 1, w = (w * a) % m; n = n - 1); \\ gdy n jest nieparzyste, wyłączamy a i zmniejszamy n o jeden
       a = (a*a) % m; \\ wyliczamy nową podstawę modulo m
       n = n/2; \\ dla nowej podstawy wykładnik jest dwa razy mniejszy
     );
return(w);
}


Zauważmy, że w funkcji modPower() nie występują wyrażenia o wartości większej od [math]\displaystyle{ m^2 }[/math].



Liczby pseudopierwsze Fermata

Liczby złożone nieparzyste spełniające równanie Fermata, otrzymały własną nazwę.

Definicja K3
Jeżeli [math]\displaystyle{ m }[/math] jest liczbą złożoną nieparzystą i dla pewnego [math]\displaystyle{ a \in \mathbb{Z} }[/math] prawdziwa jest kongruencja

[math]\displaystyle{ a^{m - 1} \equiv 1 \pmod m }[/math]

to powiemy, że [math]\displaystyle{ m }[/math] jest liczbą pseudopierwszą Fermata przy podstawie [math]\displaystyle{ a }[/math] lub krótko: [math]\displaystyle{ m }[/math] jest PSP([math]\displaystyle{ a }[/math]).


Uwaga K4
Zauważmy, że w definicji liczb pseudopierwszych Fermata nie musimy dodatkowo dołączać warunku [math]\displaystyle{ \gcd (a, m) = 1 }[/math], bo wynika on z przyjętej definicji. Mamy

[math]\displaystyle{ \gcd (a^{m - 1}, m) = \gcd (1, m) = 1 }[/math]

Zatem [math]\displaystyle{ \gcd (a, m) = 1 }[/math].

Możemy też łatwo pokazać, że jeżeli [math]\displaystyle{ \gcd (a, m) = d \gt 1 }[/math], to liczba [math]\displaystyle{ m }[/math] nie może być liczbą pseudopierwszą Fermata przy podstawie [math]\displaystyle{ a }[/math]. Istotnie, gdyby tak było, to mielibyśmy

[math]\displaystyle{ a^{m - 1} \equiv 1 \pmod{m} }[/math]

Ponieważ [math]\displaystyle{ d|m }[/math], to jest również

[math]\displaystyle{ a^{m - 1} \equiv 1 \pmod{d} }[/math]

Ale modulo [math]\displaystyle{ d }[/math] otrzymujemy natychmiast

[math]\displaystyle{ 0 \equiv 1 \pmod{d} }[/math]

Co jest niemożliwe, czyli [math]\displaystyle{ m }[/math] nie jest PSP([math]\displaystyle{ a }[/math]).


Twierdzenie K5
Dla każdej podstawy [math]\displaystyle{ a \geqslant 2 }[/math] istnieje nieskończenie wiele liczb pseudopierwszych Fermata.

Dowód

Niech [math]\displaystyle{ a \in \mathbb{Z} }[/math] i [math]\displaystyle{ a \geqslant 2 }[/math]. Jeżeli [math]\displaystyle{ p }[/math] jest liczbą pierwszą nieparzystą, to

[math]\displaystyle{ a^p - 1 = (a - 1) (a^{p - 1} + a^{p - 2} + \ldots + a^2 + a + 1) }[/math]

oraz

[math]\displaystyle{ a^p + 1 = (a + 1) (a^{p - 1} - a^{p - 2} + \ldots + a^2 - a + 1) }[/math]

Czyli [math]\displaystyle{ a - 1 | a^p - 1 }[/math] oraz [math]\displaystyle{ a + 1 | a^p + 1 }[/math].


Jeżeli przez [math]\displaystyle{ R_2 (a) }[/math] oznaczymy resztę z dzielenia liczby [math]\displaystyle{ a }[/math] przez [math]\displaystyle{ 2 }[/math] równą [math]\displaystyle{ 0 }[/math] lub [math]\displaystyle{ 1 }[/math], to prawdziwe są kongruencje

[math]\displaystyle{ a \equiv R_2 (a) \pmod 2 }[/math]

oraz

[math]\displaystyle{ a^n \equiv R_2 (a) \pmod 2 }[/math]

dla dowolnej liczby całkowitej dodatniej [math]\displaystyle{ n }[/math]. Zatem modulo [math]\displaystyle{ 2 }[/math] jest

[math]\displaystyle{ {\small\frac{a^p - 1}{a - 1}} \equiv R_2 (a) \cdot (p - 1) + 1 \equiv 1 \pmod 2 }[/math]
[math]\displaystyle{ {\small\frac{a^p + 1}{a + 1}} \equiv 1 \pmod 2 }[/math]

Co oznacza, że

[math]\displaystyle{ m = {\small\frac{a^p - 1}{a - 1}} \cdot {\small\frac{a^p + 1}{a + 1}} \equiv 1 \pmod 2 }[/math]

Czyli [math]\displaystyle{ m }[/math] jest złożoną liczbą nieparzystą. Pozostaje pokazać, że [math]\displaystyle{ a^{m - 1} \equiv 1 \pmod m }[/math].


Z twierdzenia Fermata wiemy, że

[math]\displaystyle{ a^p - 1 \equiv a - 1 \pmod p }[/math]

Ponieważ [math]\displaystyle{ (a - 1) | (a^p - 1) }[/math], to możemy napisać

[math]\displaystyle{ (a - 1) \cdot \left( {\small\frac{a^p - 1}{a - 1}} - 1 \right) \equiv 0 \pmod p }[/math]

Z założenia [math]\displaystyle{ p \nmid (a - 1) }[/math], zatem liczba pierwsza [math]\displaystyle{ p }[/math] musi dzielić [math]\displaystyle{ {\small\frac{a^p - 1}{a - 1}} - 1 }[/math] i otrzymujemy

[math]\displaystyle{ {\small\frac{a^p - 1}{a - 1}} \equiv 1 \pmod p }[/math]

Postępując analogicznie jak wyżej, dostajemy

[math]\displaystyle{ a^p + 1 \equiv a + 1 \pmod p }[/math]
[math]\displaystyle{ (a + 1) \cdot \left( {\small\frac{a^p + 1}{a + 1}} - 1 \right) \equiv 0 \pmod p }[/math]
[math]\displaystyle{ {\small\frac{a^p + 1}{a + 1}} \equiv 1 \pmod p }[/math]

Wynika stąd, że [math]\displaystyle{ m \equiv 1 \pmod p }[/math].

Zbierając mamy [math]\displaystyle{ 2| (m - 1) }[/math] i [math]\displaystyle{ p| (m - 1) }[/math], zatem [math]\displaystyle{ 2 p| (m - 1) }[/math], czyli

[math]\displaystyle{ m = {\small\frac{a^{2 p} - 1}{a^2 - 1}} \equiv 1 \pmod{2 p} }[/math]

Oznacza to, że [math]\displaystyle{ m = 1 + 2 k p }[/math] dla pewnej liczby całkowitej [math]\displaystyle{ k \gt 0 }[/math].


Zauważmy teraz, że z definicji liczby [math]\displaystyle{ m }[/math] mamy [math]\displaystyle{ (a^2 - 1) m = a^{2 p} - 1 }[/math]. Rozpatrując to równanie modulo [math]\displaystyle{ m }[/math], otrzymujemy

[math]\displaystyle{ a^{2 p} \equiv 1 \pmod m }[/math]

Zatem modulo [math]\displaystyle{ m }[/math] jest

[math]\displaystyle{ a^{m - 1} = a^{2 k p} = (a^{2 p})^k \equiv 1^k \equiv 1 \pmod m }[/math]

Ponieważ dowolna liczba pierwsza [math]\displaystyle{ p \gt a^2 - 1 }[/math] nie dzieli [math]\displaystyle{ a^2 - 1 }[/math], to dla każdego [math]\displaystyle{ a \geqslant 2 }[/math] istnieje nieskończenie wiele liczb, które są PSP([math]\displaystyle{ a }[/math]). Co należało pokazać.


Przykład K6
Z dowodu twierdzenia K5 wynika, że jeżeli liczba [math]\displaystyle{ p }[/math] jest liczbą pierwszą nieparzystą i [math]\displaystyle{ p \nmid (a^2 - 1) }[/math], to liczba [math]\displaystyle{ m = {\small\frac{a^{2 p} - 1}{a^2 - 1}} }[/math] jest PSP([math]\displaystyle{ a }[/math]). Poniżej przedstawiamy przykłady takich liczb, dla kolejnych liczb pierwszych nieparzystych [math]\displaystyle{ p }[/math] takich, że [math]\displaystyle{ p \nmid (a^2 - 1) }[/math].

for(a=2, 5, s=1; d=a^2-1; forprime(p=3, 50, if( d%p == 0, next() ); m=(a^(2*p)-1)/d; print("a= ", a, "   m= ", m); s++; if( s>6, break() ) )) 


Uwaga K7
Wykorzystując funkcję potęgowania modulo, możemy napisać prosty program do testowania pierwszości liczb w oparciu o twierdzenie Fermata.

isPrimeOrPSP(m, a) = 
{
if( modPower(a, m-1, m) == 1, return(1), return(0) );
}


Przykład K8
Poniższa tabela zawiera najmniejsze liczby pseudopierwsze Fermata dla podstaw [math]\displaystyle{ a }[/math] od [math]\displaystyle{ 2 }[/math] do [math]\displaystyle{ 15 }[/math]

for(a=2, 15, s=1; forstep(m=1, 2000, 2, if( isPrimeOrPSP(m, a)  &&  !isprime(m), print("a=", a, "  m=", m); s++ ); if( s>5, break() ) ))


Przykład K9
Tabela pokazuje ilość liczb pseudopierwszych Fermata dla podstaw [math]\displaystyle{ a }[/math] od [math]\displaystyle{ 2 }[/math] do [math]\displaystyle{ 15 }[/math]

for(a=2, 15, s=0; forstep(k=1, 10^6, 2, if( isPrimeOrPSP(k, a)  &&  !isprime(k), s++ )); print("a= ", a, "   ", s))


Uwaga K10
Można pokazać, że jeżeli [math]\displaystyle{ m }[/math] jest liczbą nieparzystą złożoną i istnieje przynajmniej jedna liczba [math]\displaystyle{ a }[/math] względnie pierwsza z [math]\displaystyle{ m }[/math], taka że

[math]\displaystyle{ a^{m - 1} \not\equiv 1 \pmod m }[/math]

to dla co najmniej połowy liczb [math]\displaystyle{ b \in [1, m - 1] }[/math] względnie pierwszych z [math]\displaystyle{ m }[/math] jest

[math]\displaystyle{ b^{m - 1} \not\equiv 1 \pmod m }[/math]

Zatem przeprowadzając test Fermata, możemy z prawdopodobieństwem nie mniejszym niż [math]\displaystyle{ \tfrac{1}{2} }[/math] twierdzić, że liczba, która przeszła test, jest liczbą pierwszą. Wykonując test [math]\displaystyle{ k }[/math] razy dla [math]\displaystyle{ k }[/math] różnych podstaw z przedziału [math]\displaystyle{ [1, m - 1] }[/math] możemy z prawdopodobieństwem większym niż [math]\displaystyle{ 1 - \left( \tfrac{1}{2} \right)^k }[/math] twierdzić, że badana liczba [math]\displaystyle{ m }[/math] jest pierwsza.

Niestety, istnieją liczby złożone [math]\displaystyle{ m }[/math] takie, że

[math]\displaystyle{ a^{m - 1} \equiv 1 \pmod m }[/math]

dla każdego [math]\displaystyle{ a }[/math] względnie pierwszego z [math]\displaystyle{ m }[/math]. Liczby te nazywamy liczbami Carmichaela i jest ich nieskończenie wiele. Pokazano, że dla dostatecznie dużych [math]\displaystyle{ x }[/math] ilość liczb Carmichaela mniejszych od [math]\displaystyle{ x }[/math] przekracza [math]\displaystyle{ x^{1/3} }[/math][1][2][3]. Test Fermata jest zatem zbyt zawodny, aby można było go stosować.


Przykład K11
Oto wszystkie liczby Carmichaela mniejsze od [math]\displaystyle{ 100 000 }[/math]



Test Millera-Rabina

Rozpoczniemy od udowodnienia prostego twierdzenia

Twierdzenie K12
Jeśli [math]\displaystyle{ m }[/math] jest liczbą pierwszą nieparzystą i [math]\displaystyle{ x^2 \equiv 1 \pmod m }[/math], to albo [math]\displaystyle{ x \equiv - 1 \pmod m }[/math], albo [math]\displaystyle{ x \equiv 1 \pmod m }[/math].

Dowód

Z założenia

[math]\displaystyle{ x^2 \equiv 1 \pmod m }[/math]

Zatem [math]\displaystyle{ m | (x^2 - 1) }[/math], czyli [math]\displaystyle{ m | (x - 1) (x + 1) }[/math]. Ponieważ z założenia [math]\displaystyle{ m }[/math] jest liczbą pierwszą nieparzystą, to [math]\displaystyle{ m }[/math] dzieli dokładnie jedną z liczb [math]\displaystyle{ x - 1 }[/math] i [math]\displaystyle{ x + 1 }[/math]. Istotnie, gdyby [math]\displaystyle{ m | (x - 1) }[/math] [math]\displaystyle{ \text{i} \;\, m | (x + 1) }[/math], to [math]\displaystyle{ m }[/math] dzieliłaby również ich różnicę równą [math]\displaystyle{ 2 }[/math], co jest niemożliwe w przypadku gdy [math]\displaystyle{ m }[/math] jest liczbą pierwszą nieparzystą.


Prace Gary'ego Millera[4] i Michaela Rabina[5] pozwoliły sformułować znacznie silniejszy test. Podstawą tego testu jest następujące twierdzenie

Twierdzenie K13
Jeżeli [math]\displaystyle{ m }[/math] jest liczbą pierwszą nieparzystą i [math]\displaystyle{ m - 1 = 2^r d }[/math], gdzie [math]\displaystyle{ d }[/math] jest liczbą nieparzystą, to dla dowolnego [math]\displaystyle{ a \in [1, m - 1] }[/math] jest albo

[math]\displaystyle{ a^d \equiv 1 \pmod m }[/math]

albo

[math]\displaystyle{ a^{2^k d} \equiv - 1 \pmod m }[/math]

dla pewnego [math]\displaystyle{ k \in [0, r - 1] }[/math].

Dowód

Rozważmy ciąg [math]\displaystyle{ r + 1 }[/math] liczb zdefiniowanych następująco

[math]\displaystyle{ \begin{array}{l} u_0 = a^d\\ u_1 = a^{2 d} = (a^d)^2\\ u_2 = a^{2^2 d} = (a^{2 d})^2\\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots\\ u_{r - 1} = a^{2^{r - 1} d} = (a^{2^{r - 2}})^2\\ u_r = a^{2^r d} = (a^{2^{r - 1} d})^2 = a^{m - 1} \end{array} }[/math]

Wyrazy ciągu [math]\displaystyle{ (u_i) }[/math] są dane wzorem ogólnym

[math]\displaystyle{ u_i = a^{2^i d} }[/math]

gdzie [math]\displaystyle{ i = 0, 1, \ldots, r }[/math]

Zauważmy, że mogą zdarzyć się następujące sytuacje

a) żaden z wyrazów ciągu [math]\displaystyle{ (u_i) }[/math] nie przystaje do [math]\displaystyle{ 1 }[/math] modulo [math]\displaystyle{ m }[/math]
b) wszystkie wyrazy ciągu [math]\displaystyle{ (u_i) }[/math] przystają do [math]\displaystyle{ 1 }[/math] modulo [math]\displaystyle{ m }[/math]
c) [math]\displaystyle{ u_k }[/math] jest pierwszym wyrazem ciągu [math]\displaystyle{ (u_i) }[/math], który przystaje do [math]\displaystyle{ 1 }[/math] modulo [math]\displaystyle{ m }[/math]


Co możemy zapisać jako

a) [math]\displaystyle{ u_i \not\equiv 1 \pmod m \quad }[/math] dla każdego [math]\displaystyle{ i \in [0, r] }[/math]
b) [math]\displaystyle{ u_i \equiv 1 \pmod m \quad }[/math] dla każdego [math]\displaystyle{ i \in [0, r] }[/math]
c) [math]\displaystyle{ u_k \equiv 1 \pmod m \quad }[/math] dla pewnego [math]\displaystyle{ k \in [0, r] }[/math]


Z definicji każdy wyraz ciągu [math]\displaystyle{ (u_i) }[/math] jest kwadratem poprzedniego. W szczególności oznacza to, że jeżeli dla pewnego [math]\displaystyle{ k \in [0, r] }[/math] jest [math]\displaystyle{ u_k \equiv 1 \pmod m }[/math], to [math]\displaystyle{ u_i \equiv 1 \pmod m }[/math] dla wszystkich [math]\displaystyle{ i \geqslant k }[/math]. Ten fakt pozwala doprecyzować zapis poszczególnych przypadków.

a) [math]\displaystyle{ u_i \not\equiv 1 \pmod m \quad }[/math] dla każdego [math]\displaystyle{ i \in [0, r] }[/math]
b) [math]\displaystyle{ u_0 \equiv 1 \pmod m }[/math]
c) [math]\displaystyle{ u_0 \not\equiv 1 \pmod m \quad }[/math] dla każdego [math]\displaystyle{ i \in [0, k - 1] \quad }[/math] oraz [math]\displaystyle{ \quad u_k \equiv 1 \pmod m \quad }[/math] dla każdego [math]\displaystyle{ i \in [k, r] , \quad }[/math] gdzie [math]\displaystyle{ k \geqslant 1 }[/math]


W przypadku a) mamy [math]\displaystyle{ u_r = a^{m - 1} \not\equiv 1 \pmod m }[/math], zatem liczba [math]\displaystyle{ m }[/math] byłaby liczbą złożoną, wbrew założeniu, że jest liczbą pierwszą.

Przypadek b) jest możliwy (np. dla [math]\displaystyle{ m = 41 }[/math] i [math]\displaystyle{ a = 10 }[/math]), ale nie pozwala powiedzieć nic więcej ani o liczbie [math]\displaystyle{ m }[/math], ani o wyrazach ciągu [math]\displaystyle{ (u_i) }[/math], które wszystkie przystają do [math]\displaystyle{ 1 }[/math] modulo [math]\displaystyle{ m }[/math].

W przypadku c) mamy [math]\displaystyle{ u_k \equiv 1 \pmod m }[/math], czyli [math]\displaystyle{ (u_{k - 1})^2 \equiv 1 \pmod m }[/math]. Z twierdzenia K12 wiemy, że musi być albo [math]\displaystyle{ u_{k - 1} \equiv - 1 \pmod m }[/math], albo [math]\displaystyle{ u_{k - 1} \equiv 1 \pmod m }[/math]. Ale drugi przypadek nie może zachodzić, bo założyliśmy, że [math]\displaystyle{ u_k }[/math] jest pierwszym wyrazem ciągu [math]\displaystyle{ (u_i) }[/math], który przystaje do [math]\displaystyle{ 1 }[/math] modulo [math]\displaystyle{ m }[/math]. Zatem musi być [math]\displaystyle{ u_{k - 1} \equiv - 1 \pmod m }[/math].

Co kończy dowód twierdzenia.


Definicja K14
Złożoną liczbę nieparzystą [math]\displaystyle{ m }[/math], która spełnia twierdzenie K13 dla pewnej liczby [math]\displaystyle{ a \in \mathbb{Z} }[/math], będziemy nazywali liczbą silnie pseudopierwszą przy podstawie [math]\displaystyle{ a }[/math] (w skrócie: SPSP([math]\displaystyle{ a }[/math])).


Uwaga K15
Niech [math]\displaystyle{ a }[/math] będzie liczbą całkowitą względnie pierwszą z [math]\displaystyle{ m }[/math] i [math]\displaystyle{ a \in [1, m - 1] }[/math]. Można pokazać, że jeżeli [math]\displaystyle{ m \neq 9 }[/math] jest liczbą nieparzystą złożoną, to co najwyżej [math]\displaystyle{ \tfrac{1}{4} }[/math] liczb [math]\displaystyle{ a }[/math] stanowią liczby silnie pseudopierwsze. Zatem w przypadku liczb silnie pseudopierwszych nie istnieje odpowiednik liczb Carmichaela. Czyli nie istnieją liczby złożone nieparzyste [math]\displaystyle{ m }[/math], dla których twierdzenie K13 byłoby prawdziwe dla wszystkich podstaw [math]\displaystyle{ a }[/math].

Wynika stąd, że jeżeli dla [math]\displaystyle{ k }[/math] różnych liczb [math]\displaystyle{ a }[/math] prawdziwe jest twierdzenie K13, to prawdopodobieństwo uznania liczby złożonej [math]\displaystyle{ m }[/math] za pierwszą wynosi [math]\displaystyle{ \left( \tfrac{1}{4} \right)^k }[/math].


Uwaga K16
Wykorzystując twierdzenie K13, możemy napisać w PARI/GP prosty program do testowania pierwszości liczb.

isPrimeOrSPSP(m, a) =
{
local(d, k, r, x);
if( m % 2 == 0, return(m == 2) );
r = valuation(m - 1, 2); \\ wykładnik, z jakim liczba 2 występuje w rozwinięciu na czynniki pierwsze liczby m - 1
d = (m - 1) / 2^r;
x = modPower(a, d, m);
if( x == 1 || x == m - 1, return(1) ); \\ x = m - 1 to przypadek k == 0
k = 0;
while( k++ < r,
       x = x^2 % m;
       if( x == m - 1, return(1) );
     );
return(0);
}


Zadanie K17
Pokazać, że jeżeli liczba [math]\displaystyle{ m }[/math] jest SPSP([math]\displaystyle{ a }[/math]), to jest PSP([math]\displaystyle{ a }[/math]).

Rozwiązanie

Z założenia [math]\displaystyle{ m }[/math] jest SPSP([math]\displaystyle{ a }[/math]), zatem spełniony jest dokładnie jeden z warunków

  • [math]\displaystyle{ a^d \equiv 1 \pmod m }[/math]
  • [math]\displaystyle{ a^{2^k \cdot d} \equiv - 1 \pmod m }[/math], dla pewnego [math]\displaystyle{ k \in [0, r - 1] }[/math]

gdzie [math]\displaystyle{ m - 1 = 2^r \cdot d }[/math], przy czym [math]\displaystyle{ d }[/math] jest liczbą nieparzystą.

Jeżeli spełniony jest pierwszy warunek, to

[math]\displaystyle{ (a^d)^{2^r} \equiv 1 \pmod m }[/math]
[math]\displaystyle{ a^{2^r \cdot d} \equiv 1 \pmod m }[/math]

Czyli [math]\displaystyle{ m }[/math] jest PSP([math]\displaystyle{ a }[/math]).

Jeżeli spełniony jest drugi warunek, to

[math]\displaystyle{ (a^{2^k \cdot d})^{2^{r - k}} \equiv (- 1)^{2^{r - k}} \pmod m }[/math]
[math]\displaystyle{ a^{2^r \cdot d} \equiv 1 \pmod m }[/math]

Czyli [math]\displaystyle{ m }[/math] jest PSP([math]\displaystyle{ a }[/math]).


Przykład K18
Pokażemy, że jeżeli [math]\displaystyle{ m }[/math] jest PSP([math]\displaystyle{ 2 }[/math]), to [math]\displaystyle{ 2^m - 1 }[/math] jest SPSP([math]\displaystyle{ 2 }[/math]).

Z założenia [math]\displaystyle{ m }[/math] jest złożoną liczbą nieparzystą, zatem [math]\displaystyle{ N = 2^m - 1 }[/math] jest złożoną liczbą nieparzystą. Ponieważ [math]\displaystyle{ m }[/math] jest FPSP([math]\displaystyle{ 2 }[/math]), to

[math]\displaystyle{ 2^{m - 1} \equiv 1 \pmod m }[/math]

Wynika stąd natychmiast, że [math]\displaystyle{ 2^{m - 1} - 1 = k m }[/math], gdzie [math]\displaystyle{ k }[/math] jest liczbą nieparzystą. Zatem

[math]\displaystyle{ N - 1 = 2^m - 2 = 2 (2^{m - 1} - 1) = 2 k m }[/math]

Widzimy, że liczba [math]\displaystyle{ 2 }[/math] występuje w pierwszej potędze w rozwinięciu liczby [math]\displaystyle{ N - 1 }[/math] na czynniki pierwsze i łatwo otrzymujemy, że

[math]\displaystyle{ 2^{(N - 1) / 2} = 2^{k m} = (2^m)^k = (2^m - 1 + 1)^k = (N + 1)^k \equiv 1 \pmod N }[/math]

Czyli [math]\displaystyle{ N = 2^m - 1 }[/math] jest SPSP([math]\displaystyle{ 2 }[/math]).


Przykład K19
Tabela zawiera najmniejsze liczby silnie pseudopierwsze dla podstaw [math]\displaystyle{ a }[/math] od [math]\displaystyle{ 2 }[/math] do [math]\displaystyle{ 15 }[/math]

for(a=2, 15, s=1; forstep(m=3, 20000, 2, if( isPrimeOrSPSP(m, a)  &&  !isprime(m), print("a=", a, "  m=", m); s++ ); if( s>5, break() ) ))


Przykład K20
Tabela pokazuje ilość liczb silnie pseudopierwszych dla podstaw [math]\displaystyle{ a }[/math] od [math]\displaystyle{ 2 }[/math] do [math]\displaystyle{ 15 }[/math]

for(a=2, 15, s=0; forstep(k=3, 10^6, 2, if( isPrimeOrSPSP(k, a)  &&  !isprime(k), s++ )); print("a= ", a, "   ", s))

Widzimy, że liczb silnie pseudopierwszych jest znacznie mniej niż liczb pseudopierwszych Fermata.


Uwaga K21
Interesujące i pożyteczne będzie zbadanie najmniejszych liczb silnie pseudopierwszych dla wielu podstaw. Niech badanymi podstawami będą kolejne liczby pierwsze. Najmniejszą liczbę SPSP([math]\displaystyle{ 2 }[/math]) już znamy: [math]\displaystyle{ 2047 }[/math]. Najmniejszą liczbę, która jest jednocześnie SPSP([math]\displaystyle{ 2 }[/math]) i SPSP([math]\displaystyle{ 3 }[/math]) musimy poszukać. Prostym poleceniem

forstep(m=3, 2*10^6, 2, if( isPrimeOrSPSP(m, 2)  &&  isPrimeOrSPSP(m, 3)  &&  !isprime(m), print("m=", m) ) )

znajdujemy, że [math]\displaystyle{ m = 1373653 }[/math]. Więcej czasu będzie wymagało znalezienie liczby jednocześnie silnie pseudopierwszej względem podstaw [math]\displaystyle{ 2, 3, 5 }[/math]. Poleceniem

forstep(m=3, 26*10^6, 2, if( isPrimeOrSPSP(m, 2)  &&  isPrimeOrSPSP(m, 3)  &&  isPrimeOrSPSP(m, 5)  &&  !isprime(m), print("m=", m) ) )

znajdujemy, że szukana liczba to [math]\displaystyle{ m = 25326001 }[/math].


Stosując bardziej wyrafinowane metody[6][7] znaleziono wartości liczb silnie pseudopierwszych względem wielu podstaw, które są kolejnymi liczbami pierwszymi, dla większej ilości liczb pierwszych[8]. Dla przykładu

Podane w prawej kolumnie liczby [math]\displaystyle{ m }[/math] są najmniejszymi liczbami jednocześnie silnie pseudopierwszymi względem podstaw [math]\displaystyle{ p_1, \ldots, p_n }[/math]. Zauważmy, że wyniki te mają bardzo praktyczne zastosowanie. Przykładowo, jeśli [math]\displaystyle{ m }[/math] przechodzi test Millera-Rabina dla siedmiu podstaw [math]\displaystyle{ a = 2, 3, 5, 7, 11, 13, 17 }[/math] i jest liczbą mniejszą od [math]\displaystyle{ 3.41 \cdot 10^{14} }[/math], to jest z pewnością liczbą pierwszą.



Uzupełnienie

Uwaga K22
W funkcji isPrimeOrSPSP() wykorzystaliśmy zaimplementowane w PARI/GP funkcje:

  • gcd(a, b) – znajduje największy wspólny dzielnik liczb a i b
  • valuation(a, b) – znajduje największą wartość liczby [math]\displaystyle{ r }[/math] taką, że [math]\displaystyle{ b^r | a }[/math]

Wprowadzenie tych funkcji pozwoliło zwiększyć czytelność kodu, ale bez trudu możemy sami je napisać:

gcd2(a, b) =
{
while( b <> 0, a = b; b = a % b );
return(a);
}


valuation2(a, b) =
{
local(s);
s = 0;
while(a % b == 0, s++; a = a / b);
return(s);
}








Przypisy

  1. W. R. Alford, Andrew Granville and Carl Pomerance, There are Infinitely Many Carmichael Numbers, Annals of Mathematics, 140, (1994), 703-722
  2. Glyn Harman, On the Number of Carmichael Numbers up to x, Bull. London Math. Soc. 37 (2005) 641–650
  3. Glyn Harman, Watt’s Mean Value Theorem and Carmichael Numbers, International Journal of Number Theory, Vol. 4, No. 2 (2008) 241–248
  4. Gary L. Miller, Riemann's Hypothesis and Tests for Primality, Journal of Computer and System Sciences 13, 300-317 (1976)
  5. Michael O. Rabin, Probabilistic Algorithm for Testing Primality, Journal of Number Theory 12, 128-138 (1980)
  6. Carl Pomerance, J. L. Selfridge and Samuel S. Wagstaff, Jr., The Pseudoprimes to 25*10^9, Mathematics of Computation, Vol. 35, No. 151 (1980), 1003-1026
  7. Gerhard Jaeschke, On Strong Pseudoprimes to Several Bases, Mathematics of Computation, Vol. 61, No. 204 (Oct., 1993), 915-926
  8. On-Line Encyclopedia of Integer Sequences, Smallest odd number for which Miller-Rabin primality test on bases <= n-th prime does not reveal compositeness, (A014233)