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

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;">12.07.2023</div>
+
<div style="text-align:right; font-size: 130%; font-style: italic; font-weight: bold;">22.03.2023</div>
  
 
__FORCETOC__
 
__FORCETOC__
Linia 5: Linia 5:
  
  
== Podzielność wyrazów <math>V_n (P, Q)</math> przez liczbę pierwszą nieparzystą ==
+
== Chińskie twierdzenie o&nbsp;resztach ==
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie P1</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J1</span><br/>
Niech <math>p</math> będzie liczbą pierwszą nieparzystą.
+
Niech <math>a, u \in \mathbb{Z}</math> i <math>m, n \in \mathbb{Z}_+</math> i <math>\gcd (m, n) = 1</math>. Kongruencja
  
::{| border="0"
+
::<math>u \equiv a \pmod{m n}</math>
|-style=height:1.9em
+
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli <math>\; p \mid P \;</math> <math>\text{i} \;\; p \mid Q , \; </math> to <math>\; p \mid V_n \;</math> dla <math>n \geqslant 1</math>
+
jest równoważna układowi kongruencji
|-style=height:1.9em
+
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli <math>\; p \mid P \;</math> <math>\text{i} \;\; p \nmid Q , \;</math> to <math>\; p \mid V_{2 n + 1} \;</math> i <math>\; p \nmid V_{2 n}</math>
+
::<math>\begin{align}
|-style=height:1.9em
+
u &\equiv a \pmod{m} \\
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli <math>\; p \nmid P \;</math> <math>\text{i} \;\; p \mid Q , \;</math> to <math>\; p \nmid V_n \;</math> dla <math>n \geqslant 0</math>
+
u &\equiv a \pmod{n} \\
|-style=height:1.9em
+
\end{align}</math>
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli <math>\; p \mid Q , \;</math> to <math>\; p \mid V_n ,</math> gdzie <math>n \geqslant 1</math>, wtedy i&nbsp;tylko wtedy, gdy <math>\; p \mid P</math>
+
 
|-style=height:1.9em
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli <math>\; p \nmid P \;</math> <math>\text{i} \;\; p \mid D , \;</math> to <math>\; p \nmid V_n \;</math> dla <math>n \geqslant 0</math>
+
 
|}
+
<math>\Large{\Longrightarrow}</math>
 +
 
 +
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>\Large{\Longleftarrow}</math>
 +
 
 +
Z kongruencji
 +
 
 +
::<math>u \equiv a \pmod{m}</math>
 +
 
 +
wynika, że <math>u - a = k m</math>, zaś z&nbsp;kongruencji
 +
 
 +
::<math>u \equiv a \pmod{n}</math>
 +
 
 +
otrzymujemy <math>n \mid (u - a)</math>, czyli <math>n \mid k m</math>. Ponieważ <math>\gcd (m, n) = 1</math>, zatem <math>n \mid k</math> (zobacz C74) 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/>
 +
&#9633;
 +
{{\Spoiler}}
 +
 
 +
 
 +
 
 +
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J2</span><br/>
 +
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 \mid (d - a) \;</math> i <math>\; m \mid (c - a)</math>, zatem <math>m</math> dzieli różnicę tych liczb, czyli <math>m \mid (d - c)</math>. Podobnie pokazujemy, że <math>n \mid (d - c)</math>. Ponieważ liczby <math>m \;</math> i <math>\; n</math> są względnie pierwsze, to <math>m n \mid (d - c)</math> (zobacz C75), 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>n \in \mathbb{Z}_+</math>. Dla dowolnych liczb całkowitych <math>x, s</math> prawdziwy jest wzór
 +
 
 +
::<math>x^n = s^n + (x - s) \cdot R_{n - 1} (x)</math>
 +
 
 +
gdzie <math>R_{n - 1} (x)</math> jest pewnym wielomianem całkowitym stopnia <math>n - 1</math>.
 +
 
 +
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
 +
Indukcja matematyczna. Dla <math>n = 1, 2, 3</math> mamy
 +
 
 +
::<math>x = s + (x - s) \cdot 1</math>
 +
 
 +
::<math>x^2 = s^2 + (x - s) (x + s)</math>
 +
 
 +
::<math>x^3 = s^3 + (x - s) (x^2 + x s + s^2)</math>
 +
 
 +
Zakładając, że twierdzenie jest prawdziwe dla liczb całkowitych dodatnich należących do przedziału <math>[1, n]</math> otrzymujemy dla <math>n + 1</math>
 +
 
 +
::<math>x^{n + 1} = x \cdot x^n</math>
 +
 
 +
:::<math>\;\;\; = x \cdot [s^n + (x - s) \cdot R_{n - 1} (x)]</math>
 +
 
 +
:::<math>\;\;\; = x s^n + x (x - s) R_{n - 1} (x)</math>
 +
 
 +
:::<math>\;\;\; = [s + (x - s)] s^n + x (x - s) R_{n - 1} (x)</math>
 +
 
 +
:::<math>\;\;\; = s^{n + 1} + (x - s) s^n + x (x - s) R_{n - 1} (x)</math>
 +
 
 +
:::<math>\;\;\; = s^{n + 1} + (x - s) [s^n + x R_{n - 1} (x)]</math>
 +
 
 +
:::<math>\;\;\; = s^{n + 1} + (x - s) R_n (x)</math>
 +
 
 +
gdzie oznaczyliśmy <math>R_n (x) = s^n + x R_{n - 1} (x)</math>. Na mocy zasady indukcji matematycznej twierdzenie jest prawdziwe dla wszystkich liczb całkowitych dodatnich.<br/>
 +
&#9633;
 +
{{\Spoiler}}
 +
 
 +
 
 +
 
 +
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J8</span><br/>
 +
Niech <math>W_n (x)</math> będzie dowolnym wielomianem stopnia <math>n \geqslant 1</math>. Wielomian <math>W_n (x)</math> można przedstawić w postaci
 +
 
 +
::<math>W_n (x) = W_n (s) + (x - s) V_{n - 1} (x)</math>
  
Założenie, że <math>p \nmid P</math> w&nbsp;ostatnim punkcie jest istotne. Gdy <math>\; p \mid P \;</math> i <math>\; p \mid D , \;</math> to <math>\; p \mid Q \;</math> i&nbsp;otrzymujemy punkt pierwszy.
+
gdzie <math>V_{n - 1} (x)</math> jest wielomianem stopnia <math>n - 1</math>, a 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}}
 
{{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>W_n (x) = \sum_{k = 0}^{n} a_k x^k</math>, gdzie <math>a_n \neq 0</math>. Korzystając z twierdzenia J7, dostajemy
 +
 
 +
::<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>
 +
 
 +
::::::<math>\quad \,\, = \sum_{k = 1}^{n} a_k (x - s) R_{k - 1} (x)</math>
 +
 
 +
::::::<math>\quad \,\, = (x - s) \cdot \sum_{k = 1}^{n} a_k R_{k - 1} (x)</math>
 +
 
 +
::::::<math>\quad \,\, = (x - s) \cdot V_{n - 1} (x)</math>
  
Ponieważ <math>V_1 = P</math>, zatem <math>p \mid V_1</math>. Dla <math>n \geqslant 2</math> wyrażenie <math>V_n = P V_{n - 1} - Q V_{n - 2}</math> jest podzielne przez <math>p</math>.
+
gdzie oznaczyliśmy <math>V_{n - 1} (x) = \sum_{k = 1}^{n} a_k R_{k - 1} (x)</math>. Ponieważ wielomian <math>a_n R_{n - 1} (x)</math> ma najwyższy stopnień równy <math>n - 1</math>, to stopień wielomianu <math>V_{n - 1} (x)</math> jest równy <math>n - 1</math>.
  
'''Punkt 2.'''
+
Niech <math>V_{n - 1} (x) = \sum_{k = 0}^{n - 1} b_k x^k</math>. Mamy
  
Indeksy nieparzyste. Indukcja matematyczna. Mamy <math>V_0 = 2</math>, <math>V_1 = P</math>, <math>V_2 = P^2 - 2 Q</math> i <math>V_3 = P^3 - 3 P Q</math>, zatem <math>p \mid V_1</math> i <math>p \mid V_3</math>. Zakładając, że <math>p \mid V_{2 n - 1}</math>, z&nbsp;definicji ciągu <math>(V_k)</math> otrzymujemy dla <math>V_{2 n + 1}</math>
+
::<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>
  
::<math>V_{2 n + 1} = P V_{2 n} - Q V_{2 n - 1}</math>
+
Porównując wyrazy o najwyższym 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}}
  
Z założenia indukcyjnego wynika, że <math>p \mid V_{2 n + 1}</math>, zatem na mocy zasady indukcji matematycznej twierdzenie jest prawdziwe dla wszystkich <math>n \geqslant 0</math>.
 
  
Indeksy parzyste. Indukcja matematyczna. Mamy <math>V_0 = 2</math>, <math>V_1 = P</math> i <math>V_2 = P^2 - 2 Q</math>, zatem <math>p \nmid V_0</math> i <math>p \nmid V_2</math>. Zakładając, że <math>p \nmid V_{2 n}</math>, z&nbsp;definicji ciągu <math>(V_k)</math> otrzymujemy dla <math>V_{2 n + 2}</math>
 
  
::<math>V_{2 n + 2} = P V_{2 n + 1} - Q V_{2 n}</math>
+
<span style="font-size: 110%; font-weight: bold;">Definicja J9</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>.
  
Z założenia indukcyjnego wynika, że <math>p \nmid V_{2 n + 2}</math>. Zatem na mocy zasady indukcji matematycznej twierdzenie jest prawdziwe dla wszystkich liczb <math>n \geqslant 0</math>.
 
  
'''Punkt 3.'''
 
  
Indukcja matematyczna. Mamy <math>V_0 = 2</math> i <math>V_1 = P</math>, zatem <math>p \nmid V_0</math> i <math>p \nmid V_1</math>. Zakładając, że <math>p \nmid V_n</math>, z&nbsp;definicji ciągu <math>(V_k)</math> otrzymujemy dla <math>V_{n + 1}</math>
+
<span style="font-size: 110%; font-weight: bold;">Definicja J10</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.
  
::<math>V_{n + 1} = P V_n - Q V_{n - 1}</math>
 
  
Z założenia indukcyjnego wynika, że <math>p \nmid V_{n + 1}</math>, zatem na mocy zasady indukcji matematycznej twierdzenie jest prawdziwe dla wszystkich liczb <math>n \geqslant 0</math>.
 
  
'''Punkt 4.'''
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J11</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
  
Wynika z&nbsp;punktów pierwszego i&nbsp;trzeciego.
+
::<math>W_n (x) \equiv W_n (y) \pmod{m}</math>
  
'''Punkt 5.'''
+
{{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
  
Z twierdzenia N7 wiemy, że
+
::<math>x^k - y^k = (x - y) \sum_{j = 1}^{k} x^{k - j} y^{j - 1}</math>
  
::<math>2^{n - 1} V_n = \sum_{k = 0}^{\lfloor n / 2 \rfloor} \binom{n}{2 k} P^{n - 2 k} D^k</math>
+
Z założenia <math>m \mid (x - y)</math>, zatem dla <math>k \geqslant 1</math> mamy <math>m \mid (x^k - y^k)</math>. Wynika stąd, że prawdziwe są kongruencje
  
::::<math>\;\, = P^n + \binom{n}{2} P^{n - 2} D + \binom{n}{4} P^{n - 4} D^2 + \ldots </math>
+
::<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>
  
Z założenia <math>p \mid D</math>, zatem modulo <math>p</math> dostajemy
+
Dodając wypisane kongruencje stronami, otrzymujemy
  
::<math>2^{n - 1} V_n \equiv P^n \pmod{p}</math>
+
::<math>W_n (x) \equiv W_n (y) \pmod{m}</math>
  
Ponieważ <math>p \nmid P</math>, zatem <math>p \nmid V_n</math>.
 
 
Co należało pokazać.<br/>
 
Co należało pokazać.<br/>
 
&#9633;
 
&#9633;
Linia 75: Linia 315:
  
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie P2</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Uwaga J12</span><br/>
Jeżeli <math>d</math> jest nieparzystym dzielnikiem <math>Q</math>, to dla <math>n \geqslant 1</math> jest
+
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>
  
::<math>V_n \equiv P^n \pmod{d}</math>
+
gdzie liczby <math>m</math> i <math>n</math> są względnie pierwsze.
  
W szczególności, gdy liczba pierwsza nieparzysta <math>p</math> jest dzielnikiem <math>Q</math>, to
+
Kongruencja ta jest równoważna układowi kongruencji
  
::<math>V_p \equiv P \pmod{p}</math>
+
::<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
 +
 
 +
:*&nbsp;&nbsp;&nbsp;<math>x \equiv a \!\! \pmod{m}</math> będzie pierwiastkiem kongruencji <math>W (x) \equiv 0 \!\! \pmod{m}</math>
 +
:*&nbsp;&nbsp;&nbsp;<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}
 +
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
 +
 
 +
::<math>x \equiv c \pmod{m n}</math>
 +
 
 +
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 J11 mamy
 +
 
 +
::<math>\begin{align}
 +
  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>.
 +
 
 +
Podsumujmy: jeżeli kongruencje
 +
 
 +
::<math>\begin{align}
 +
  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
 +
 
 +
::<math>W(x) \equiv 0 \pmod{m n}</math>
 +
 
 +
 
 +
 
 +
 
 +
 
 +
== Twierdzenie Lagrange'a ==
 +
 
 +
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J13</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>.
  
 
{{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}}
Oznaczmy <math>\delta = \sqrt{D}</math>, zatem <math>2 \alpha = P + \delta</math> i <math>2 \beta = P - \delta</math>. Ze wzoru dwumianowego, mamy
 
  
::<math>2^n \alpha^n = (P + \delta)^n = \sum_{j = 0}^{n} \binom{n}{j} P^{n - j} \delta^j</math>
+
'''A. Istnienie rozwiązania'''
  
::<math>2^n \beta^n = (P - \delta)^n = \sum_{j = 0}^{n} \binom{n}{j} P^{n - j} (- \delta)^j</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 C76. Poniżej przedstawimy jeszcze jeden sposób znalezienia rozwiązania.
  
Obliczając sumę powyższych wzorów, otrzymujemy
+
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 C73 - 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>2^n (\alpha^n + \beta^n) = \sum_{j = 0}^{n} \binom{n}{j} P^{n - j} (\delta^j + (- \delta)^j)</math>
+
::<math>a_1 r \equiv 1 \pmod{p}</math>
  
:::::<math>\quad \: = \underset{j \; \text{parzyste}}{\sum_{j = 0}^{n}} \binom{n}{j} P^{n - j} \cdot 2 \delta^j</math>
+
Mnożąc rozpatrywaną kongruencję przez <math>r</math>, otrzymujemy
  
:::::<math>\quad \: = 2 \underset{j \; \text{parzyste}}{\sum_{j = 0}^{n}} \binom{n}{j} P^{n - j} \cdot D^{j / 2}</math>
+
::<math>a_1 r x + a_0 r \equiv 0 \pmod{p}</math>
  
Rozpatrując powyższą równość modulo <math>Q</math>, dostajemy (zobacz N46)
+
Zatem
  
::<math>2^{n - 1} V_n \equiv \underset{j \; \text{parzyste}}{\sum_{j = 0}^{n}} \binom{n}{j} P^{n - j} \cdot (P^2)^{j / 2}</math>
+
::<math>x \equiv - a_0 r \pmod{p}</math>
  
::::<math>\:\, \equiv P^n \underset{j \; \text{parzyste}}{\sum_{j = 0}^{n}} \binom{n}{j}</math>
+
'''B. Brak innych rozwiązań'''
  
::::<math>\:\, \equiv 2^{n - 1} P^n \pmod{Q}</math>
+
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
 
Czyli
  
::<math>2^{n - 1} (V_n - P^n) \equiv 0 \pmod{Q}</math>
+
::<math>a_1 x_1 \equiv a_1 x_2 \pmod{p}</math>
 +
 
 +
::<math>p \mid a_1 (x_1 - x_2)</math>
 +
 
 +
Ponieważ <math>p \nmid a_1</math>, to z&nbsp;lematu Euklidesa (C74) otrzymujemy natychmiast <math>p \mid (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 J14 (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;J13 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 J8, 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.
 +
 
  
Ponieważ <math>Q</math> dzieli <math>2^{n - 1} (V_n - P^n)</math>, to tym bardziej <math>d</math> dzieli <math>2^{n - 1} (V_n - P^n)</math>. Z&nbsp;założenia <math>\gcd (d, 2^{n - 1}) = 1</math>, zatem <math>d</math> dzieli <math>V_n - P^n</math> (zobacz C74). Co należało pokazać.
+
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>
  
W przypadku szczególnym, gdy <math>d = n = p</math>, gdzie <math>p</math> jest nieparzystą liczbą pierwszą, otrzymujemy natychmiast (zobacz J22).
+
Ponieważ <math>p</math> jest liczbą pierwszą, to z&nbsp;rozpatrywanej kongruencji
  
::<math>V_p \equiv P^p \equiv P \pmod{p}</math>
+
::<math>W_n (x) \equiv 0 \pmod{p}</math>
  
Co należało pokazać.<br/>
+
wynika, że musi być (zobacz C74)
 +
 
 +
::<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;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
Linia 124: Linia 470:
  
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie P3</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J15</span><br/>
Niech <math>D = P^2 - 4 Q \neq 0</math>, a <math>(D \mid p)</math> oznacza symbol Legendre'a, gdzie <math>p</math> jest liczbą pierwszą nieparzystą i <math>p \nmid Q</math>. Mamy
+
Jeżeli kongruencja
  
::{| border="0"
+
::<math>a_n x^n + a_{n - 1} x^{n - 1} + \ldots + a_1 x + a_0 \equiv 0 \pmod{p}</math>
|-style=height:2em
+
 
| &#9679;&nbsp;&nbsp;&nbsp; <math>V_p \equiv P \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>.
|-style=height:2em
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli <math>(D \mid p) = - 1 , \;</math> to <math>V_{p + 1} \equiv 2 Q \pmod{p}</math>
 
|-style=height:2em
 
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli <math>(D \mid p) = 1 , \;</math> to <math>V_{p - 1} \equiv 2 \pmod{p}</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}}
'''Punkt 1.'''
+
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 J16</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 J17</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.
 +
 
 +
W PARI/GP polecenie
 +
 
 +
<span style="font-size: 90%; color:black;">Mod(x^15 + 11*x^11 + 5*x^5 + 2*x^2 + x + 1, x^5 - x)</span>
 +
 
 +
znajduje resztę z dzielenia wielomianu <math>x^{15} + 11 x^{11} + 5 x^5 + 2 x^2 + x + 1</math> przez wielomian <math>x^5 - x</math>. Tutaj otrzymujemy
  
Zauważmy, że przypadek gdy <math>p \mid Q</math>, omówiliśmy w&nbsp;twierdzeniu poprzednim. Z&nbsp;założenia <math>p</math> jest liczbą pierwszą nieparzystą. Z&nbsp;twierdzenia N7, w&nbsp;przypadku nieparzystego <math>n = p</math>, otrzymujemy
+
<span style="font-size: 90%; color:black;">Mod(12*x^3 + 2*x^2 + 6*x + 1, x^5 - x)</span>
  
::<math>2^{p - 1} V_p = P^p + \binom{p}{2} P^{p - 2} D + \binom{p}{4} P^{p - 4} D^2 + \ldots + p P D^{(p - 1) / 2}</math>
 
  
Ponieważ dla <math>k \in [1, p - 1]</math> jest (zobacz N43)
 
  
::<math>\binom{p}{k} \equiv 0 \pmod{p}</math>
 
  
to modulo <math>p</math> dostajemy
 
  
::<math>2^{p - 1} V_p \equiv V_p \equiv P^p \equiv P \pmod{p}</math>
+
== Twierdzenie Wilsona ==
  
'''Punkt 2.'''
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J18 (John Wilson, 1770)</span><br/>
 +
Liczba całkowita <math>p \geqslant 2</math> jest liczbą pierwszą wtedy i&nbsp;tylko wtedy, gdy
  
Zauważmy, że warunek <math>(D \mid p) = - 1</math> nie może być spełniony, gdy <math>p \mid Q</math>. Istotnie, gdy <math>p \mid Q</math>, to <math>D = P^2 - 4 Q \equiv P^2 \pmod{p}</math>, czyli
+
::<math>(p - 1) ! \equiv - 1 \pmod{p}</math>
  
::<math>(D \mid p) = (P^2 \mid p) = (P \mid p)^2 = 0 , \;</math> gdy <math>p \mid P</math>
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
  
lub
+
<math>\Large{\Longleftarrow}</math>
  
::<math>(D \mid p) = (P^2 \mid p) = (P \mid p)^2 = 1 , \;</math> gdy <math>p \nmid P</math>
+
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 \mid p ,</math> to prawdziwa jest kongruencja
  
i nie może być <math>(D \mid p) = - 1</math>.
+
::<math>(p - 1) ! \equiv - 1 \pmod{d}</math>
  
 +
czyli
  
Dla parzystego <math>n = p + 1</math> otrzymujemy z&nbsp;twierdzenia N7
+
::<math>0 \equiv - 1 \pmod{d}</math>
  
::<math>2^p V_{p + 1} = P^{p + 1} + \binom{p + 1}{2} P^{p - 1} D + \binom{p + 1}{4} P^{p - 3} D^2 + \ldots + \binom{p + 1}{p - 1} P^2 D^{(p - 1) / 2} + D^{(p + 1) / 2}</math>
+
co jest niemożliwe.
  
Ponieważ dla <math>k \in [2, p - 1]</math> jest (zobacz N44)
+
<math>\Large{\Longrightarrow}</math>
  
::<math>\binom{p + 1}{k} \equiv 0 \pmod{p}</math>
+
Łatwo sprawdzamy, że twierdzenie jest prawdziwe dla <math>p = 2</math>. Niech teraz <math>p</math> będzie liczbą pierwszą nieparzystą. Rozważmy wielomiany
  
to modulo <math>p</math> dostajemy
+
::<math>W(x) = (x - 1) (x - 2) \cdot \ldots \cdot (x - (p - 1))</math>
  
::<math>2 V_{p + 1} \equiv P^2 + D \cdot D^{(p - 1) / 2} \pmod{p}</math>
+
oraz
  
 +
::<math>V(x) = x^{p - 1} - 1</math>
  
Z założenia <math>D</math> jest liczbą niekwadratową modulo <math>p</math>, zatem <math>D^{(p - 1) / 2} \equiv - 1 \pmod{p}</math>. Skąd wynika natychmiast, że
+
Zauważmy, że
  
::<math>2 V_{p + 1} \equiv P^2 - D \equiv 4 Q \pmod{p}</math>
+
:* 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>
  
Zatem
+
Niech
  
::<math>V_{p + 1} \equiv 2 Q \pmod{p}</math>
+
::<math>U(x) = W (x) - V (x)</math>
  
'''Punkt 3.'''
+
Zauważmy, że
  
Dla parzystego <math>n = p - 1</math> otrzymujemy z&nbsp;twierdzenia N7
+
:* 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>
  
::<math>2^{p - 2} V_{p - 1} = P^{p - 1} + \binom{p - 1}{2} P^{p - 3} D + \binom{p - 1}{4} P^{p - 5} D^2 + \ldots + \binom{p - 1}{p - 3} P^2 D^{(p - 3) / 2} + D^{(p - 1) / 2}</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 J15 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}}
  
Ponieważ dla <math>k \in [0, p - 1]</math> jest (zobacz N45)
 
  
::<math>\binom{p - 1}{k} \equiv (- 1)^k \pmod{p}</math>
 
  
to modulo <math>p</math> mamy
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J19</span><br/>
 +
Liczba całkowita nieparzysta <math>p \geqslant 3</math> jest liczbą pierwszą wtedy i&nbsp;tylko wtedy, gdy
  
::<math>2^{p - 2} V_{p - 1} \equiv P^{p - 1} + P^{p - 3} D + P^{p - 5} D^2 + \ldots + P^2 D^{(p - 3) / 2} + D^{(p - 1) / 2} \pmod{p}</math>
+
::<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&nbsp;tylko wtedy, gdy
  
Z założenia <math>D</math> jest liczbą kwadratową modulo <math>p</math>, zatem istnieje taka liczba <math>R</math>, że
+
::<math>(p - 1) ! \equiv - 1 \pmod{p}</math>
  
::<math>D \equiv R^2 \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
  
Ponieważ
+
::<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>(D \mid p) = 1</math>, to <math>p \nmid D</math>, zatem <math>p \nmid R</math>
+
::<math>(- 1)^{\tfrac{p - 1}{2}} \cdot \left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv - 1 \!\! \pmod{p}</math>
:* z&nbsp;założenia <math>p \nmid Q</math>, to <math>P^2 - R^2 \equiv P^2 - D \equiv 4 Q \not\equiv 0 \pmod{p}</math>
 
  
 +
::<math>\left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv (- 1)^{\tfrac{p + 1}{2}} \!\! \pmod{p}</math>
  
Czyli
+
Co należało pokazać.<br/>
 +
&#9633;
 +
{{\Spoiler}}
  
::<math>2^{p - 2} V_{p - 1} \equiv P^{p - 1} + P^{p - 3} R^2 + P^{p - 5} R^4 + \ldots + P^2 R^{p - 3} + R^{p - 1} \pmod{p}</math>
 
  
  
Uwzględniając, że <math>P^2 - R^2 \not\equiv 0 \pmod{p}</math>, możemy napisać
+
<span style="font-size: 110%; font-weight: bold;">Zadanie J20</span><br/>
 +
Pokazać, że jeżeli <math>p</math> jest liczbą pierwszą nieparzystą, to <math>(p - 2) ! \equiv 1 \!\! \pmod{p}</math>.
  
::<math>2^{p - 2} (P^2 - R^2) V_{p - 1} \equiv (P^2 - R^2) (P^{p - 1} + P^{p - 3} R^2 + P^{p - 5} R^4 + \ldots + P^2 R^{p - 3} + R^{p - 1}) \pmod{p}</math>
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 +
Niech <math>S</math> będzie zbiorem liczb całkowitych dodatnich mniejszych od <math>p</math>, czyli <math>S = \{ 1, 2, \ldots, p - 1 \}</math>. Podstawą dowodu jest spostrzeżenie, że tylko dwie liczby należące do <math>S</math> są swoimi odwrotnościami modulo <math>p</math>.
 +
Pozostałe liczby są wzajemnie swoimi odwrotnościami modulo <math>p</math>.
  
::::::::<math>\equiv P^{p + 1} - R^{p + 1} \pmod{p}</math>
+
Jeżeli liczba <math>x</math> jest swoją odwrotnością modulo <math>p</math>, to musi być
  
::::::::<math>\equiv P^2 - R^2 \pmod{p}</math>
+
::<math>x^2 \equiv 1 \!\! \pmod{p}</math>
  
Zatem
+
Łatwo zauważamy, że istnieją dwa rozwiązania <math>x \equiv 1 \!\! \pmod{p} \,</math> i <math>\, x \equiv - 1 \!\! \pmod{p} ,</math> a z twierdzenia Lagrange'a (J14) wiemy, że są to wszystkie rozwiązania. Wynika stąd, że w zbiorze <math>S</math> liczby <math>1 \,</math> i <math>\, p - 1</math> są swoimi odwrotnościami modulo <math>p ,</math> a pozostałe liczby <math>2, \ldots, p - 2</math> są wzajemnie swoimi odwrotnościami modulo <math>p ,</math> czyli można połączyć je w pary <math>a, b</math> takie, że <math>a \neq b \,</math> i <math>\, a \cdot b \equiv 1 \!\! \pmod{p} .</math> Tworząc iloczyn wszystkich takich par, otrzymujemy
  
::<math>2^{p - 2} V_{p - 1} \equiv 1 \pmod{p}</math>
+
::<math>(a \cdot b) \cdot (c \cdot d) \cdot \ldots \cdot (x \cdot y) \equiv 1 \!\! \pmod{p}</math>
  
Skąd wynika
+
Oczywiście iloczyn po lewej stronie wyczerpuje wszystkie liczby <math>2, 3, \ldots, p - 2 ,</math> zatem
  
::<math>V_{p - 1} \equiv 2 \pmod{p}</math>
+
::<math>2 \cdot 3 \cdot \ldots \cdot (p - 2) \equiv 1 \!\! \pmod{p}</math>
  
 
Co należało pokazać.<br/>
 
Co należało pokazać.<br/>
Linia 237: Linia 634:
  
  
Aby zapisać punkty 2. i 3. twierdzenia P3 (i tylko te punkty) w&nbsp;zwartej formie, musimy założyć, że <math>\gcd (p, D) = 1</math>. Otrzymujemy<br/>
+
<span style="font-size: 110%; font-weight: bold;">Zadanie J21</span><br/>
<span style="font-size: 110%; font-weight: bold;">Twierdzenie P4</span><br/>
+
Pokazać, że jeżeli <math>m \geqslant 6</math> jest liczbą złożoną, to <math>(m - 1) ! \equiv 0 \!\! \pmod{m}</math>
Jeżeli <math>p</math> jest liczbą pierwszą nieparzystą i <math>\gcd (p, Q D) = 1</math>, to
+
 
 +
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 +
Ponieważ <math>m</math> jest liczbą złożoną, to możemy zapisać <math>m</math> w postaci <math>m = a b ,</math> gdzie liczby <math>a, b</math> spełniają warunek <math>1 < a, b < m .</math> Rozpatrzmy najpierw przypadek kiedy <math>a \neq b ,</math> wtedy w iloczynie <math>1 \cdot 2 \cdot \ldots \cdot (m - 1)</math> występują obydwa czynniki <math>a \,</math> i <math>\, b</math>, zatem <math>a b \mid (m - 1) !</math>
 +
 
 +
Rozważmy teraz przypadek gdy <math>m = a^2</math>. Jeśli <math>m - 1 \geqslant 2 a ,</math> to w iloczynie <math>1 \cdot 2 \cdot \ldots \cdot (m - 1)</math> pojawi się czynnik <math>a</math> oraz <math>2 a ,</math> wobec tego <math>a^2 \mid (m - 1) !</math> Ponieważ z warunków <math>m = a^2</math> oraz <math>m - 1 \geqslant 2 a</math> wynika, że <math>a \geqslant 3 ,</math> to jedynie dla <math>m = 2^2 = 4</math> twierdzenie nie jest prawdziwe. Co należało pokazać.<br/>
 +
&#9633;
 +
{{\Spoiler}}
 +
 
 +
 
 +
 
 +
 
 +
 
 +
== Twierdzenie Fermata ==
 +
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J22 (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 \mid 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 \mid 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 C74) 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 J23</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>.
  
::<math>V_{p - (D \mid p)} \equiv 2 Q^{(1 - (D \mid p)) / 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 założenia
  
 +
::<math>x^2 \equiv - y^2 \!\! \pmod{p}</math>
  
 +
Przypuśćmy, że <math>p \mid y</math>. Wtedy z&nbsp;powyższej kongruencji mamy natychmiast, że <math>p \mid 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}}
  
== Liczby pseudopierwsze Dicksona drugiego rodzaju ==
 
  
<span style="font-size: 110%; font-weight: bold;">Uwaga P5</span><br/>
 
Z twierdzenia P4 wiemy, że dla liczb pierwszych nieparzystych takich, że <math>p \nmid Q D</math> jest
 
  
::<math>V_{p - (D \mid p)} \equiv 2 Q^{(1 - (D \mid p)) / 2} \pmod{p}</math>
+
<span style="font-size: 110%; font-weight: bold;">Zadanie J24</span><br/>
 +
Niech <math>x, y, n \geqslant 0</math>. Pokazać, że jedynymi rozwiązaniami równania
  
gdzie <math>(D \mid p)</math> oznacza symbol Legendre'a. Jeśli zastąpimy symbol Legendre'a symbolem Jacobiego, to będziemy mogli badać prawdziwość tego twierdzenia dla liczb złożonych i&nbsp;łatwo przekonamy się, że dla pewnych liczb złożonych <math>m</math> kongruencja
+
::<math>x^2 + y^2 = 2^n</math>
  
::<math>V_{m - (D \mid m)} \equiv 2 Q^{(1 - (D \mid m)) / 2} \pmod{m}</math>
+
są liczby
  
również jest prawdziwa. Prowadzi to definicji liczb pseudopierwszych Dicksona drugiego rodzaju<ref name="D2PSP1"/><ref name="D2PSP2"/>.
+
:* <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 \mid 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
  
<span style="font-size: 110%; font-weight: bold;">Definicja P6</span><br/>
+
::<math>2 \equiv 2^n \!\! \pmod{4}</math>
Powiemy, że liczba złożona nieparzysta <math>m</math> jest liczbą pseudopierwszą Dicksona drugiego rodzaju dla parametrów <math>P</math> i <math>Q</math><ref name="D2PSP3"/> (D2PSP(<math>P, Q</math>)), jeżeli <math>\gcd (m, Q D) = 1</math> i
 
  
::<math>V_{m - (D \mid m)} \equiv 2 Q^{(1 - (D \mid m)) / 2} \pmod{m}</math>
+
Kongruencja ta jest prawdziwa tylko dla <math>n = 1</math> i&nbsp;w&nbsp;tym przypadku mamy <math>(x, y) = (1, 1)</math>.
  
gdzie <math>(D \mid m)</math> oznacza symbol Jacobiego.
+
'''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
  
<span style="font-size: 110%; font-weight: bold;">Uwaga P7</span><br/>
+
::<math>u^2 + w^2 = 2^{n - 2 a}</math>
Wykorzystując funkcje <code>jacobi(a, n)</code> i <code>modLucas(n, P, Q, m)</code> (zobacz J48, N15) możemy napisać prosty program do testowania pierwszości liczb na podstawie twierdzenia P4.
 
  
<span style="font-size: 90%; color:black;">isPrimeOr<span style="background-color: #fee481;">D2PSP</span>(m, P, Q) =
+
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;
'''local'''(D, js);
+
{{\Spoiler}}
D = P^2 - 4*Q;
 
'''if'''( '''gcd'''(m, 2*Q*D) > 1, '''return'''(0) );
 
js = jacobi(D, m);
 
'''if'''( modLucas(m - js, P, Q, m)[2] == ( 2*Q^((1 - js)/2) ) % m, '''return'''(1), '''return'''(0) );
 
}</span>
 
  
  
  
<span style="font-size: 110%; font-weight: bold;">Przykład P8</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J25</span><br/>
Poniższa tabela zawiera najmniejsze liczby pseudopierwsze Dicksona drugiego rodzaju dla różnych parametrów <math>P</math> i <math>Q</math>.
+
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>.
  
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: right; margin-right: auto;"
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<math>\boldsymbol{P}</math><br/><math>\boldsymbol{Q}</math>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+
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>.
! <math>\boldsymbol{1}</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{- 5}</math>
 
| style="background-color: yellow" | <math>1121</math> || <math>1541</math> || <math>13333</math> || <math>217</math> || <math>4081</math> || style="background-color: yellow" | <math>519</math> || <math>3913</math> || <math>5461</math> || <math>201</math> || <math>1729</math>
 
|-
 
! <math>\boldsymbol{- 4}</math>
 
| <math>7345</math> || <math>1891</math> || <math>91</math> || <math>1585</math> || style="background-color: yellow" | <math>1055</math> || <math>147</math> || <math>129</math> || <math>129</math> || <math>385</math> || <math>91</math>
 
|-
 
! <math>\boldsymbol{- 3}</math>
 
| <math>121</math> || <math>91</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>121</math>
 
|-
 
! <math>\boldsymbol{- 2}</math>
 
| <math>341</math> || style="background-color: yellow" | <math>245</math> || <math>33</math> || style="background-color: yellow" | <math>1957</math> || style="background-color: yellow" | <math>1339</math> || <math>265</math> || <math>8321</math> || <math>6601</math> || <math>249</math> || <math>1105</math>
 
|-
 
! <math>\boldsymbol{- 1}</math>
 
| <math>9</math> || <math>9</math> || <math>9</math> || <math>9</math> || <math>9</math> || <math>9</math> || <math>9</math> || <math>9</math> || <math>9</math> || <math>9</math>
 
|-
 
! <math>\boldsymbol{1}</math>
 
| <math>25</math> || style="background-color: red" | <math></math> || <math>9</math> || <math>25</math> || <math>25</math> || <math>9</math> || <math>49</math> || <math>49</math> || <math>9</math> || <math>25</math>
 
|-
 
! <math>\boldsymbol{2}</math>
 
| <math>1003</math> || <math>561</math> || <math>341</math> || <math>33</math> || <math>33</math> || <math>3781</math> || <math>33</math> || <math>2419</math> || <math>84561</math> || <math>177</math>
 
|-
 
! <math>\boldsymbol{3}</math>
 
| <math>1541</math> || <math>121</math> || <math>121</math> || <math>91</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>121</math> || <math>24727</math>
 
|-
 
! <math>\boldsymbol{4}</math>
 
| <math>1891</math> || style="background-color: yellow" | <math>341</math> || <math>19951</math> || style="background-color: red" | <math></math> || <math>85</math> || <math>451</math> || <math>6601</math> || <math>385</math> || <math>129</math> || <math>4033</math>
 
|-
 
! <math>\boldsymbol{5}</math>
 
| <math>5597</math> || style="background-color: yellow" | <math>979</math> || <math>15753</math> || style="background-color: yellow" | <math>979</math> || style="background-color: yellow" | <math>913</math> || <math>217</math> || <math>1541</math> || <math>7787</math> || <math>1417</math> || <math>201</math>
 
|}
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Pokaż kod|Hide=Ukryj kod}}
+
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 J24). Z&nbsp;twierdzenia J23 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/>
<span style="font-size: 90%; color:black;">FirstD2PSP(Stop) =
+
&#9633;
\\ najmniejsze D2PSP(P,Q) < Stop;  dla 1<=P<=10 i -5<=Q<=5
 
{
 
'''local'''(D, m, P, Q);
 
Q = -6;
 
'''while'''( Q++ <= 5,
 
        '''if'''( Q == 0, '''next'''() );
 
        P = 0;
 
        '''while'''( P++ <= 10,
 
              D = P^2 - 4*Q;
 
              '''if'''( D == 0,  
 
                  '''print'''("Q= ", Q, "  P= ", P, "  ------------------");
 
                  '''next'''();
 
                );
 
              m = 3;
 
              '''while'''( m < Stop,
 
                      '''if'''( isPrimeOr<span style="background-color: #fee481;">D2PSP</span>(m, P, Q) &&  !'''isprime'''(m),
 
                          '''print'''("Q= ", Q, "  P= ", P, "  m= ", m, "  (D|m)= ", jacobi(D, m));
 
                          '''break'''();
 
                        );
 
                      m = m + 2;
 
                    );
 
            );
 
      );
 
}</span>
 
<br/>
 
 
{{\Spoiler}}
 
{{\Spoiler}}
  
Żółtym tłem oznaczyliśmy te najmniejsze liczby pseudopierwsze Lucasa, dla których <math>(D \mid m) = - 1</math>.
 
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Zadanie J26</span><br/>
 +
Pokazać, że jeżeli <math>m \in \mathbb{Z}_+</math>, to <math>m \geqslant 2</math> nie jest dzielnikiem liczby <math>2^m - 1</math>.
 +
 +
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 +
Ponieważ liczby parzyste nie mogą dzielić liczby nieparzystej <math>2^m - 1</math>, to możemy założyć, że <math>m</math> jest liczbą nieparzystą. Zatem <math>\gcd (m, 2) = 1</math> i liczba <math>2</math> ma element odwrotny modulo <math>m</math>.
 +
 +
Niech <math>p</math> będzie najmniejszym dzielnikiem pierwszym liczby nieparzystej <math>m</math>, wtedy <math>\gcd (m, p - 1) = 1</math> i z lematu Bezout'a (zobacz C73) istnieją takie liczby całkowite <math>x, y</math>, że
 +
 +
::<math>m x + (p - 1) y = 1</math>
 +
 +
Załóżmy, dla uzyskania sprzeczności, że <math>m \mid (2^m - 1)</math>. Zatem
 +
 +
::<math>2^m \equiv 1 \!\! \pmod{p}</math>
  
<span style="font-size: 110%; font-weight: bold;">Przykład P9</span><br/>
+
i dostajemy
Tabela przedstawia ilość liczb D2PSP(<math>P, Q</math>) mniejszych od <math>10^9</math>.
 
  
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: right; margin-right: auto;"
+
::<math>2 = 2^1 = 2^{m x + (p - 1) y} \equiv (2^m)^x \cdot (2^{p - 1})^y \equiv 1 \!\! \pmod{p}</math>
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<math>\boldsymbol{P}</math><br/><math>\boldsymbol{Q}</math>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
! <math>\boldsymbol{1}</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{- 5}</math>
 
| <math>145</math> || <math>143</math> || <math>91</math> || <math>4981</math> || <math>356</math> || <math>129</math> || <math>101</math> || <math>172</math> || <math>152</math> || <math>129</math>
 
|-
 
! <math>\boldsymbol{- 4}</math>
 
| <math>192</math> || <math>380</math> || <math>9272</math> || <math>318</math> || <math>249</math> || <math>208</math> || <math>192</math> || <math>555</math> || <math>233</math> || <math>183</math>
 
|-
 
! <math>\boldsymbol{- 3}</math>
 
| <math>179</math> || <math>5767</math> || <math>184</math> || <math>184</math> || <math>153</math> || <math>372</math> || <math>145</math> || <math>164</math> || <math>147</math> || <math>192</math>
 
|-
 
! <math>\boldsymbol{- 2}</math>
 
| <math>5361</math> || <math>521</math> || <math>128</math> || <math>217</math> || <math>120</math> || <math>163</math> || <math>132</math> || <math>343</math> || <math>111</math> || <math>467</math>
 
|-
 
! <math>\boldsymbol{- 1}</math>
 
| <math>6428</math> || <math>8365</math> || <math>6318</math> || <math>10695</math> || <math>6004</math> || <math>8541</math> || <math>7104</math> || <math>6423</math> || <math>6496</math> || <math>6762</math>
 
|-
 
! <math>\boldsymbol{1}</math>
 
| <math>282485800</math> || style="background-color: red" | <math></math> || <math>9811</math> || <math>10627</math> || <math>10081</math> || <math>13073</math> || <math>12756</math> || <math>11841</math> || <math>11373</math> || <math>12365</math>
 
|-
 
! <math>\boldsymbol{2}</math>
 
| <math>221</math> || <math>2939</math> || <math>5597</math> || <math>418</math> || <math>147</math> || <math>157</math> || <math>141</math> || <math>168</math> || <math>116</math> || <math>174</math>
 
|-
 
! <math>\boldsymbol{3}</math>
 
| <math>176</math> || <math>264</math> || <math>3095</math> || <math>5767</math> || <math>158</math> || <math>239</math> || <math>135</math> || <math>179</math> || <math>159</math> || <math>151</math>
 
|-
 
! <math>\boldsymbol{4}</math>
 
| <math>407</math> || <math>5361</math> || <math>473</math> || style="background-color: red" | <math></math> || <math>9735</math> || <math>515</math> || <math>330</math> || <math>959</math> || <math>213</math> || <math>247</math>
 
|-
 
! <math>\boldsymbol{5}</math>
 
| <math>108</math> || <math>421</math> || <math>137</math> || <math>421</math> || <math>480</math> || <math>5146</math> || <math>92</math> || <math>124</math> || <math>123</math> || <math>702</math>
 
|}
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Pokaż kod|Hide=Ukryj kod}}
+
Co jest niemożliwe.<br/>
<span style="font-size: 90%; color:black;">NumOfD2PSP(Stop) =
+
&#9633;
\\ ilość liczb pseudopierwszych Dicksona drugiego rodzaju D2PSP(P,Q) < Stop;  dla 1<=P<=10 i -5<=Q<=5
 
{
 
'''local'''(D, m, P, Q);
 
Q = -6;
 
'''while'''( Q++ <= 5,
 
        '''if'''( Q == 0, '''next'''() );
 
        P = 0;
 
        '''while'''( P++ <= 10,
 
              D = P^2 - 4*Q;
 
              '''if'''( D == 0, '''print'''("Q= ", Q, "  P= ", P, "  ------------------"); '''next'''() );
 
              s = 0;
 
              m = 3;
 
              '''while'''( m < Stop,
 
                      '''if'''( isPrimeOr<span style="background-color: #fee481;">D2PSP</span>(m, P, Q)  &&  !'''isprime'''(m), s++ );
 
                      m = m + 2;
 
                    );
 
              '''print'''("Q= ", Q, "  P= ", P, "  s= ", s);
 
            );
 
      );
 
}</span>
 
<br/>
 
 
{{\Spoiler}}
 
{{\Spoiler}}
  
  
  
<span style="font-size: 110%; font-weight: bold;">Przykład P10</span><br/>
 
Tabele przedstawiają ilość liczb D2PSP( <math>1, Q</math> ) mniejszych od <math>10^9</math> dla <math>| Q | \leqslant 20</math>.
 
  
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: center; margin-right: auto;"
 
! <math>\boldsymbol{Q}</math> !! <math>\boldsymbol{1}</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>\boldsymbol{16}</math> !! <math>\boldsymbol{17}</math> !! <math>\boldsymbol{18}</math> !! <math>\boldsymbol{19}</math> !! <math>\boldsymbol{20}</math>
 
|-
 
| #D2PSP(<math>1,Q</math>) <math>< 10^9</math> || <math>282485800</math> || <math>221</math> || <math>176</math> || <math>407</math> || <math>108</math> || <math>113</math> || <math>550</math> || <math>194</math> || <math>165</math> || <math>119</math> || <math>135</math> || <math>171</math> || <math>99</math> || <math>105</math> || <math>85</math> || <math>767</math> || <math>113</math> || <math>195</math> || <math>578</math> || <math>127</math>
 
|}
 
  
::{| class="wikitable plainlinks"  style="font-size: 90%; text-align: center; margin-right: auto;"
+
== Twierdzenie Eulera ==
! <math>\boldsymbol{Q}</math> !! <math>\boldsymbol{-1}</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>\boldsymbol{-16}</math> !! <math>\boldsymbol{-17}</math> !! <math>\boldsymbol{-18}</math> !! <math>\boldsymbol{-19}</math> !! <math>\boldsymbol{-20}</math>
+
 
|-
+
Twierdzenie Eulera jest uogólnieniem twierdzenia Fermata.<br/>
| #D2PSP(<math>1,Q</math>) <math>< 10^9</math> || <math>6428</math> || <math>5361</math> || <math>179</math> || <math>192</math> || <math>145</math> || <math>1281</math> || <math>123</math> || <math>196</math> || <math>198</math> || <math>162</math> || <math>246</math> || <math>1748</math> || <math>106</math> || <math>103</math> || <math>110</math> || <math>205</math> || <math>113</math> || <math>157</math> || <math>157</math> || <math>1536</math>
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J27 (Leonhard Euler, 1763)</span><br/>
|}
+
Niech <math>a \in \mathbb{Z}</math>, <math>m \in \mathbb{Z}_+</math> oraz <math>\gcd (a, m) = 1</math>, wtedy
 +
 
 +
::<math>a^{\varphi (m)} \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}}
 +
Łatwo zauważyć, że twierdzenie jest prawdziwe dla <math>m = 1, 2</math>, zatem będziemy rozpatrywali przypadek, gdy <math>m \geqslant 3</math>.
 +
 
 +
Niech <math>R = \{ r_1, r_2, \ldots, r_{\varphi (m)} \}</math> będzie zbiorem wszystkich liczb całkowitych dodatnich nie większych od <math>m</math> i względnie pierwszych z <math>m</math>. Niech <math>S = \{ a r_1, a r_2, \ldots, a r_{\varphi (m)} \}</math>. Prosta analiza właściwości zbiorów <math>R</math> i <math>S</math> stanowi podstawę dowodu twierdzenia.
 +
 
 +
'''1. Wszystkie elementy w <math>\boldsymbol{R}</math> są różne modulo <math>\boldsymbol{m}</math>'''
 +
 
 +
Nie może być <math>r_i \equiv r_j \!\! \pmod{m}</math> dla różnych <math>i, j</math>, bo dla <math>m \geqslant 3</math> mamy oszacowanie <math>1 \leqslant r_i, r_j \leqslant m - 1</math>, skąd otrzymujemy <math>0 \leqslant | r_i - r_j | \leqslant m - 2</math>. Wynika stąd, że <math>m \mid (r_i - r_j)</math> tylko w przypadku, gdy <math>r_i = r_j</math>, czyli gdy <math>i = j</math>.
 +
 
 +
'''2. Wszystkie elementy w <math>\boldsymbol{S}</math> są względnie pierwsze z <math>\boldsymbol{m}</math>'''
 +
 
 +
Z definicji dowolna liczba <math>r_i \in R</math> jest względnie pierwsza z <math>m</math> oraz z założenia <math>\gcd (a, m) = 1</math>. Z twierdzenia H6 otrzymujemy natychmiast, że <math>\gcd (a r_i, m) = 1</math>.
 +
 
 +
'''3. Wszystkie elementy w <math>\boldsymbol{S}</math> są różne modulo <math>m</math>'''
 +
 
 +
Załóżmy, dla uzyskania sprzeczności, że dla różnych wskaźników <math>i, j</math> jest <math>a r_i \equiv a r_j \!\! \pmod{m}</math>. Ponieważ <math>\gcd (a, m) = 1</math>, to liczba <math>a</math> ma element odwrotny modulo <math>m</math>. Mnożąc obie strony kongruencji przez <math>a^{- 1}</math> otrzymujemy <math>r_i \equiv r_j \!\! \pmod{m}</math> dla różnych <math>i, j</math>, co jest niemożliwe (zobacz punkt 1).
  
 +
'''4. Każdy element w <math>\boldsymbol{S}</math> jest równy modulo <math>\boldsymbol{m}</math> pewnemu elementowi w <math>\boldsymbol{R}</math>'''
  
Zauważmy, że otrzymane wartości dla <math>Q = \pm 1</math> i <math>Q = - 2</math> są wyraźnie większe od pozostałych.
+
Dla każdego <math>i = 1, \ldots, \varphi (m)</math> liczba <math>a r_i \in S</math> może być zapisana w postaci <math>a r_i = k m + r</math>, gdzie <math>k \in \mathbb{Z} \;</math> i <math>\; 0 \leqslant r < m</math>. Ponieważ
  
 +
::<math>\gcd (a r_i, m) = 1 = \gcd (k m + r, m) = \gcd (r, m)</math>
  
 +
to <math>r \in R</math> i musi być <math>a r_i \equiv r_j \!\! \pmod{m}</math> dla pewnego <math>r_j \in R</math>.
  
  
 +
Z punktów 1., 2. i 4. wynika natychmiast, że zbiory <math>R</math> i <math>S</math> są równe modulo <math>m</math> (zobacz H24), zatem
  
== Zmodyfikowana metoda Selfridge'a wyboru parametrów <math>P</math> i <math>Q</math> ==
+
::<math>a r_1 \cdot a r_2 \cdot \ldots \cdot a r_{\varphi (m)} \equiv r_1 \cdot r_2 \cdot \ldots \cdot r_{\varphi (m)} \!\! \pmod{m}</math>
  
<span style="font-size: 110%; font-weight: bold;">Uwaga P11</span><br/>
+
::<math>r_1 \cdot r_2 \cdot \ldots \cdot r_{\varphi (m)} \cdot a^{\varphi (m)} \equiv r_1 \cdot r_2 \cdot \ldots \cdot r_{\varphi (m)} \!\! \pmod{m}</math>
Przykłady P9 i&nbsp;P10 pokazują, że w&nbsp;przypadku liczb pseudopierwszych Dicksona drugiego rodzaju dla parametrów <math>P, Q</math> należy unikać wyboru <math>Q = \pm 1</math> i <math>Q = - 2</math>. Niestety, metoda Selfridge'a dopuszcza wartość <math>Q = - 1</math>. Baillie i&nbsp;Wagstaff<ref name="BaillieWagstaff1"/> dostrzegają ten problem (zobacz tabelę nr 4 na stronie 1407) i&nbsp;„naprawiają” metodę Selfridge'a wprowadzając następującą poprawkę: jeśli otrzymamy parę <math>(P, Q) = (1, -1)</math>, to należy zamienić ją na parę <math>(P, Q) = (5, 5)</math>. Ponieważ liczba nieparzysta <math>m</math> jest LPSP(<math>1, - 1</math>) / SLPSP(<math>1, - 1</math>) wtedy i&nbsp;tylko wtedy, gdy <math>m</math> jest LPSP(<math>5, 5</math>) / SLPSP(<math>5, 5</math>) (zobacz P18 i&nbsp;P19), to taka poprawka nie zmienia wyników wcześniejszych obliczeń wykorzystujących funkcje LucasTest(m) i&nbsp;StrongLucasTest(m).
 
  
Innym sposobem usunięcia przypadku <math>Q = - 1</math> jest wyszukiwanie liczby <math>a_k</math>, dla której <math>(a_k \mid m) = - 1</math> od <math>a_k > 5</math>. To oznacza zmianę metody i&nbsp;oczywiście zmieni wyniki wcześniejszych obliczeń funkcji LucasTest(m) i&nbsp;StrongLucasTest(m).
+
Ale <math>\gcd (r_1 r_2 \cdot \ldots \cdot r_{\varphi (m)}, m) = 1</math> i mnożąc obie strony powyższej kongruencji przez element odwrotny do <math>r_1 r_2 \cdot \ldots \cdot r_{\varphi (m)}</math> modulo <math>m</math>, otrzymujemy
  
Dlatego konieczne było napisanie nowej funkcji <code>MethodA(m)</code>. Działa ona teraz w&nbsp;ten sposób, że domyślnie (bez podania drugiego parametru lub wpisując jako drugi parametr wartość "*") działa ona jak „poprawiona” metoda Selfridge'a (następuje zamiana pary <math>(P, Q) = (1, - 1)</math> na <math>(P, Q) = (5, 5)</math>). Jeżeli wpiszemy drugi parametr, to będzie on interpretowany, jako wyraz ciągu <math>a_k = (- 1)^k (2 k + 1)</math>, od którego należy rozpocząć przeszukiwanie. Parametr musi być elementem ciągu <math>(a_k)</math> dla <math>k \geqslant 2</math>. Przykładowo <code>MethodA(m, 5)</code>, to stara (niepoprawiona) wersja funkcji, <code>MethodA(m, -7)</code> rozpocznie poszukiwanie liczby <math>a_k</math> takiej, że <math>(a_k \mid m) = - 1</math> od <math>a_k = - 7</math>.
+
::<math>a^{\varphi (m)} \equiv 1 \!\! \pmod{m}</math>
  
<span style="font-size: 90%; color:black;">MethodA(m, start = "*") =
+
Co należało pokazać.<br/>
{
+
&#9633;
\\ parametr start (poza "*") musi być wyrazem ciągu a_k = (-1)^k * (2*k+1) dla k >= 2
+
{{\Spoiler}}
'''local'''(a, js, Q);
 
'''if'''( m%2 == 0, '''return'''("Error") );
 
'''if'''( m == 1, '''return'''([0, 0]) ); \\ 1 nie jest liczbą pierwszą
 
a = '''if'''( start == "*", 5, start );
 
'''if'''( a%4 <> 1, '''return'''("Error") );
 
a = -a + 2*'''sign'''(a); \\ poprzedni wyraz ciągu (a_k)
 
'''while'''( 1,
 
        a = -a - 2*'''sign'''(a); \\ następny wyraz ciągu (a_k)
 
        js = jacobi(a, m);
 
        '''if'''( js == 1, '''next'''() );
 
        '''if'''( js == 0, '''if'''( (a % m) <> 0, '''return'''([0, 0]), '''next'''() ) );
 
        '''if'''( js == -1, Q = (1 - a)/4 );
 
        '''if'''( start == "*" && Q == -1, '''return'''([5, 5]) );
 
        '''if'''( '''gcd'''(Q, m) == 1, '''return'''([1, Q]) );
 
        '''if'''( Q % m <> 0, '''return'''([0, 0]) ); \\ gcd(Q, m) > 1
 
      );
 
}</span>
 
  
Jeżeli <math>\gcd (a, m) > 0</math> lub <math>\gcd (Q, m) > 0</math>, to następuje sprawdzenie złożoności liczby <math>m</math> (linia czwarta i&nbsp;ósma pętli <code>while</code>). Jeśli nie została wykryta złożoność liczby <math>m</math>, to funkcja <code>MethodA()</code> zwraca parę <math>(P, Q)</math> taką, że <math>\gcd (m, Q D) = 1</math>, gdzie <math>D = P^2 - 4 Q</math>.
 
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Zadanie J28</span><br/>
 +
Niech <math>m \in \mathbb{Z}_+</math>, zaś <math>a, b \in \mathbb{Z}</math>. Pokazać, że jeżeli <math>\gcd (a, m) = 1</math>, to kongruencja <math>a x \equiv b \!\! \pmod{m}</math> ma jednoznaczne rozwiązanie równe
  
<span style="font-size: 110%; font-weight: bold;">Zadanie P12</span><br/>
+
::<math>x \equiv a^{\varphi (m) - 1} \cdot b \!\! \pmod{m}</math>
Pokazać, że dla dowolnej niekwadratowej liczby nieparzystej <math>m</math> jest: <code>MethodA(m, 9) = MethodA(m, -11)</code>.
 
  
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
Mówiąc o&nbsp;liniach kodu, mamy na myśli linie w&nbsp;pętli <code>while</code>. Linia nr 1 w&nbsp;pętli <code>while</code>, to linia <code>a = -a - 2*sign(a);</code>.
+
Z twierdzenia Eulera wynika, że jeżeli <math>\gcd (a, m) = 1</math>, to elementem odwrotnym do <math>a</math> modulo <math>m</math> jest <math>a^{\varphi (m) - 1}</math>. Istotnie
 +
 
 +
::<math>a^{\varphi (m) - 1} \cdot a = a^{\varphi (m)} \equiv 1 \!\! \pmod{m}</math>
 +
 
 +
Zatem mnożąc obie strony kongruencji <math>a x \equiv b \!\! \pmod{m}</math> przez <math>a^{\varphi (m) - 1}</math>, otrzymujemy
 +
 
 +
::<math>a^{\varphi (m) - 1} \cdot a x = a^{\varphi (m)} \cdot x \equiv x \equiv a^{\varphi (m) - 1} \cdot b \!\! \pmod{m}</math>
 +
 
 +
::<math>x \equiv a^{\varphi (m) - 1} \cdot b \!\! \pmod{m}</math>
 +
 
 +
Co było do pokazania.<br/>
 +
&#9633;
 +
{{\Spoiler}}
 +
 
 +
 
 +
 
  
Możemy znacznie ułatwić sobie analizę problemu, sprawdzając, że równość <code>MethodA(m, 9) = MethodA(m, -11)</code> jest prawdziwa dla niekwadratowych liczb nieparzystych mniejszych od <math>100</math>. Wystarczy wykonać prosty test:
 
  
forstep(m=1, 10^2, 2, if( issquare(m), next() ); if( MethodA(m, 9) <> MethodA(m, -11), print(m) ))
+
== Kryterium Eulera ==
  
 +
<span style="font-size: 110%; font-weight: bold;">Definicja J29</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
  
Dalszą analizę możemy przeprowadzić dla liczb <math>m</math> postaci <math>6 k + 1</math>, <math>6 k + 3</math>, <math>6 k + 5</math>, gdzie <math>k \geqslant 10</math>. Rozważmy działanie funkcji <code>MethodA(m, 9)</code>.
+
::<math>x^2 \equiv a \pmod{p}</math>
  
 +
ma rozwiązanie, czyli istnieje taka liczba <math>k \in \mathbb{Z}</math>, że <math>p \mid (k^2 - a)</math>.
  
Jeżeli <math>m = 6 k + 1</math> lub <math>m = 6 k + 5</math>, to <math>(9 \mid m) = (3 \mid m)^2 = 1</math> i&nbsp;wykonywana jest linia nr 3, w&nbsp;wyniku czego następuje przejście do kolejnej wartości <code>a</code>, która jest równa <math>- 11</math>. Od tej chwili nie ma już różnic między <code>MethodA(m, 9)</code> i <code>MethodA(m, -11)</code>.
+
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 J30</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
  
Jeżeli <math>m = 6 k + 3</math>, to <math>(9 \mid m) = 0</math> i&nbsp;wykonywana jest linia nr 4, w&nbsp;wyniku czego funkcja <code>MethodA(m, 9)</code> zwraca wektor <code>[0, 0]</code>.
+
::<math>k^2 \equiv (p - k)^2 \pmod{p}</math>
  
 +
Pozwala to wypisać pary liczb, których kwadraty są identyczne modulo <math>p</math>
  
Pozostaje pokazać, że funkcja <code>MethodA(m, -11)</code> dla <math>m = 6 k + 3</math>, gdzie <math>k \geqslant 10</math>, również zwraca wektor <code>[0, 0]</code>.
+
::<math>(1, p - 1), (2, p - 2), \ldots, \left( {\small\frac{p - 1}{2}}, p - {\small\frac{p - 1}{2}} \right)</math>
  
 +
Ponieważ
  
Jeżeli <math>(- 11 \mid 6 k + 3) = 0</math>, to wykonywana jest linia nr 4, w&nbsp;wyniku czego zwracany jest wektor <code>[0, 0]</code>.
+
::<math>p - {\small\frac{p - 1}{2}} = {\small\frac{p + 1}{2}} = {\small\frac{p - 1}{2}} + 1</math>
  
Jeżeli <math>(- 11 \mid 6 k + 3) = - 1</math>, to wykonywana jest linia nr 5, w&nbsp;wyniku czego wyliczana jest wartość <code>Q</code> i&nbsp;otrzymujemy <math>Q = 3</math>. Ponieważ <math>\gcd (Q, m) = 3 > 1</math>, to po wykonaniu linii nr 8 (ostatnia linia) zwracany jest wektor <code>[0, 0]</code>.
+
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
  
Jeżeli <math>(- 11 \mid 6 k + 3) = 1</math>, to wykonywana jest linia nr 3, w&nbsp;wyniku czego następuje przejście do kolejnej wartości <code>a</code>, która jest równa <math>13</math>.
+
::<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ń
  
Jeżeli <math>(13 \mid 6 k + 3) = 0</math>, to wykonywana jest linia nr 4, w&nbsp;wyniku czego zwracany jest wektor <code>[0, 0]</code>.
+
::<math>1 \leqslant | i - j | \leqslant i + j < p - 1</math>
  
Jeżeli <math>(13 \mid 6 k + 3) = - 1</math>, to wykonywana jest linia nr 5, w&nbsp;wyniku czego wyliczana jest wartość <code>Q</code> i&nbsp;otrzymujemy <math>Q = - 3</math>. Ponieważ <math>\gcd (Q, m) = 3 > 1</math>, to po wykonaniu linii nr 8 (ostatnia linia) zwracany jest wektor <code>[0, 0]</code>.
+
::<math>2 < i + j < p - 1</math>
  
Jeżeli <math>(13 \mid 6 k + 3) = 1</math>, to wykonywana jest linia nr 3, w&nbsp;wyniku czego następuje przejście do kolejnej wartości <code>a</code>, która jest równa <math>- 15</math>.
 
  
 +
Ponieważ (z definicji) liczba <math>a</math> jest liczbą kwadratową modulo <math>p</math>, jeżeli kongruencja
  
Ponieważ <math>(- 15 \mid 6 k + 3) = 0</math>, to wykonywana jest linia nr 4, w&nbsp;wyniku czego zwracany jest wektor <code>[0, 0]</code>.
+
::<math>x^2 \equiv a \pmod{p}</math>
  
 +
ma rozwiązanie, to liczba kwadratowa modulo <math>p</math> musi przystawać do pewnego kwadratu modulo <math>p</math>.
  
Pokazaliśmy, że funkcje <code>MethodA(m, 9)</code> i <code>MethodA(m, -11)</code> zwracają takie same wartości dla wszystkich niekwadratowych liczb nieparzystych <math>m</math>.<br/>
+
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/>
 
&#9633;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
Linia 522: Linia 905:
  
  
<span style="font-size: 110%; font-weight: bold;">Uwaga P13</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J31 (kryterium Eulera, 1748)</span><br/>
Podobnie, jak w&nbsp;przypadku liczb pseudopierwszych Lucasa LPSP(<math>P, Q</math>) i&nbsp;w&nbsp;przypadku liczb silnie pseudopierwszych Lucasa SLPSP(<math>P, Q</math>), tak i&nbsp;w&nbsp;przypadku liczb pseudopierwszych Dicksona drugiego rodzaju D2PSP(<math>P, Q</math>) możemy testować pierwszość liczby <math>m</math>, wybierając liczby <math>P, Q</math> losowo lub zastosować wybraną metodę postępowania. Przyjmując zmodyfikowaną postać funkcji <code>MethodA()</code>, możemy łatwo napisać program:
+
Niech <math>p</math> będzie liczbą pierwszą nieparzystą i <math>p \nmid a</math>. Modulo <math>p</math> mamy
  
<span style="font-size: 90%; color:black;">Dickson2Test(m) =
+
::{| border="0"
{
+
|-style=height:2.5em
'''local'''(P, Q, X);
+
| &#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>
'''if'''( m%2 == 0, '''return'''(m == 2) );
+
|-style=height:2.5em
'''if'''( '''issquare'''(m), '''return'''(0) ); \\ sprawdzamy, czy m nie jest liczbą kwadratową
+
| &#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>
X = MethodA(m);
+
|}
P = X[1];
 
Q = X[2];
 
'''if'''( P == 0, '''return'''(0) ); \\ jeżeli P = 0, to m jest liczbą złożoną
 
'''if'''( modLucas(m + 1, P, Q, m)[2] == (2*Q) % m, '''return'''(1), '''return'''(0) );
 
}</span>
 
  
 +
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
  
 +
'''Punkt 1.'''
  
<span style="font-size: 110%; font-weight: bold;">Przykład P14</span><br/>
+
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
Poniżej przedstawiamy najmniejsze liczby D2PSP(<math>P, Q</math>) oraz ilości tych liczb w&nbsp;zależności od wartości parametru <code>start</code> w&nbsp;funkcji <code>MethodA(m, start)</code>. Ponieważ <code>MethodA(m, 9) = MethodA(m, -11)</code> (zobacz P12), to pominęliśmy przypadek <code>MethodA(m, -11)</code>. Dla porównania w&nbsp;następnym przykładzie przedstawimy analogiczne zestawienia dla liczb SLPSP(<math>P, Q</math>).
 
  
 +
::<math>x^{(p - 1) / 2} \equiv 1 \pmod{p}</math>
  
Ilość liczb pseudopierwszych Dicksona drugiego rodzaju mniejszych od <math>10^n</math> dla różnych parametrów <code>start</code> funkcji <code>MethodA()</code>.
+
Zauważmy, że
  
{| class="wikitable plainlinks"  style="font-size: 90%; text-align: center; margin-right: auto;"
+
::{| border=1 style="border-collapse: collapse;"
! <math>\boldsymbol{n}</math>
+
|-style=height:2.5em
| style="width: 20px;" | <math>2</math> || style="width: 20px;" | <math>3</math> || style="width: 20px;" | <math>4</math> || style="width: 20px;" | <math>5</math> || style="width: 20px;" | <math>6</math> || style="width: 20px;" | <math>7</math> || style="width: 20px;" | <math>8</math> || style="width: 20px;" | <math>9</math> || style="width: 20px;" | <math>10</math> || style="width: 20px;" | <math>11</math> || style="width: 20px;" | <math>12</math> || style="width: 20px;" | <math>13</math> || style="width: 20px;" | <math>14</math> || style="width: 20px;" | <math>15</math>
+
| &nbsp;&nbsp;&nbsp;'''A'''&nbsp;&nbsp;&nbsp; || &nbsp;&nbsp;&nbsp;<math>| Q | = {\small\frac{p - 1}{2}}</math> || &nbsp;&nbsp;&nbsp;zobacz J30
|-
+
|-style=height:2.5em
! style="text-align: left" | MethodA(m, "*")<ref name="BaillieFioriWagstaff1"/>
+
| &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 J14
| <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>3</math> || <math>3</math> || <math>4</math> || <math>5</math>
+
|-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="text-align: left" | MethodA(m, 5)
+
|-style=height:2.5em
| <math>0</math> || <math>0</math> || <math>2</math> || <math>4</math> || <math>18</math> || <math>55</math> || <math>145</math> || <math>383</math> || <math>914</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
+
| &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>
|-
 
! style="text-align: left" | MethodA(m, -7)
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 9)
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 13)
 
| <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>2</math> || <math>3</math> || <math>3</math> || <math>3</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, -15)  
 
| <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>2</math> || <math>3</math> || <math>4</math> || <math>4</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 17)  
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>1</math> || <math>3</math> || <math>4</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, -19)  
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 21)
 
| <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, -23)  
 
| <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 25)
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
 
|-
 
! style="text-align: left" | MethodA(m, -27)
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 29)
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>2</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, -31)
 
| <math>1</math> || <math>1</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>2</math> || <math>3</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 33)
 
| <math>0</math> || <math>0</math> || <math>0</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>1</math> || <math>2</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
 
 
|}
 
|}
  
  
Najmniejsze liczby pseudopierwsze Dicksona drugiego rodzaju dla różnych parametrów <code>start</code> funkcji <code>MethodA()</code>. Pogrubioną czcionką zostały zaznaczone te liczby, które są jednocześnie silnie pseudopierwszymi liczbami Lucasa (dla tego samego parametru <code>start</code>).
+
Łącząc rezultaty z&nbsp;tabeli, otrzymujemy
  
{| class="wikitable plainlinks"  style="font-size: 90%; text-align: left; margin-right: auto;"
+
::<math>{\small\frac{p - 1}{2}} = | Q | \leqslant | S | \leqslant {\small\frac{p - 1}{2}}</math>
! style="text-align: left" | MethodA(m, "*")<ref name="BaillieFioriWagstaff1"/>
+
 
| <math>913, 150267335403, 430558874533, 14760229232131, 936916995253453</math>
+
Skąd łatwo widzimy, że
|-
+
 
! style="text-align: left" | MethodA(m, 5)
+
::<math>| Q | = | S | = {\small\frac{p - 1}{2}}</math>
| <math>1127, \boldsymbol{5777}, \boldsymbol{10877}, \boldsymbol{75077}, \boldsymbol{100127}, \boldsymbol{113573}, 139127, 154697, \boldsymbol{161027}, \boldsymbol{162133}, \boldsymbol{231703}, \boldsymbol{430127}, 472453, 567643, 629693, \boldsymbol{635627}, \ldots</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 H23). Prostą konsekwencją równości zbiorów <math>Q</math> i <math>S</math> jest stwierdzenie
! style="text-align: left" | MethodA(m, -7)
+
 
| <math>509140495, \dots, 14760229232131</math>
+
::{| border=0 style="background: #EEEEEE;"
|-
+
|-style=height:2.0em
! style="text-align: left" | MethodA(m, 9)
+
|&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;
| <math>8788015</math>
 
|-
 
! style="text-align: left" | MethodA(m, 13)
 
| <math>2263, 8788015, 59839087</math>
 
|-
 
! style="text-align: left" | MethodA(m, -15)
 
| <math>2263, 3086759, 59839087, 166044803</math>
 
|-
 
! style="text-align: left" | MethodA(m, 17)
 
| <math>58982383, 166044803, 209562267, 2676099095</math>
 
|-
 
! style="text-align: left" | MethodA(m, -19)  
 
| <math>58982383, ..., 101378999149</math>
 
|-
 
! style="text-align: left" | MethodA(m, 21)
 
| <math>1121, ..., 101378999149</math>
 
|-
 
! style="text-align: left" | MethodA(m, -23)
 
| <math>155, 20709031, ..., 101378999149</math>
 
|-
 
! style="text-align: left" | MethodA(m, 25)
 
| <math>..., 101378999149</math>
 
|-
 
! style="text-align: left" | MethodA(m, -27)
 
| <math>..., 101378999149</math>
 
|-
 
! style="text-align: left" | MethodA(m, 29)
 
| <math>2004987, 1084387931, ..., 101378999149</math>
 
|-
 
! style="text-align: left" | MethodA(m, -31)  
 
| <math>27, 4611, 4105612299, ..., 101378999149</math>
 
|-
 
! style="text-align: left" | MethodA(m, 33)
 
| <math>94669, 2026655153, ..., 101378999149</math>
 
 
|}
 
|}
  
 +
Co kończy dowód punktu pierwszego.
  
Liczby w&nbsp;pierwszym wierszu są tak duże, że możemy co najwyżej zweryfikować, czy są D2PSP(<math>P, Q</math>)
+
'''Punkt 2.'''
 +
 
 +
Z udowodnionego już punktu pierwszego wynika<ref name="logic1"/>, że
 +
 
 +
::{| 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} \not\equiv 1 \pmod{p}</math>&nbsp;&nbsp;&nbsp;
 +
|}
  
<span style="font-size: 90%; color:black;">X = [913, 150267335403, 430558874533, 14760229232131, 936916995253453]
+
Z twierdzenia Fermata
for(k = 1, length(X), print( Dickson2Test(X[k]) ))</span>
 
  
Równie łatwo sprawdzamy, że
+
::<math>a^{p - 1} - 1 = (a^{(p - 1) / 2} - 1) \cdot (a^{(p - 1) / 2} + 1) \equiv 0 \pmod{p}</math>
  
<span style="font-size: 90%; color:black;">Dickson2Test(14760229232131, 5) == 1
+
wynika natychmiast, że jeżeli <math>a^{(p - 1) / 2} - 1 \not\equiv 0 \pmod{p}</math>, to musi być
Dickson2Test(14760229232131, -7) == 1</span>
 
  
 +
::<math>a^{(p - 1) / 2} + 1 \equiv 0 \pmod{p}</math>
  
Czytelnik zapewne zwrócił uwagę na liczbę <math>m = 101378999149 = 43 \cdot 73 \cdot 109 \cdot 296299</math>, która pojawia się aż w&nbsp;ośmiu kolejnych wierszach. Kiedy i&nbsp;dlaczego taka sytuacja ma miejsce?
+
Fakt ten pozwala sformułować uzyskaną równoważność bardziej precyzyjnie
  
Jest tak wtedy, gdy dla <math>r</math> kolejnych liczb <math>a_k</math>, gdzie <math>a_k = (- 1)^k (2 k + 1)</math> mamy
+
::{| 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;
 +
|}
  
::<math>(a_k \mid m) = (a_{k + 1} \mid m) = \ldots = (a_{k + r - 1} \mid m) = 1</math>
+
Co należało pokazać.<br/>
 +
&#9633;
 +
{{\Spoiler}}
  
oraz
 
  
::<math>(a_{k + r} \mid m) = - 1</math>
 
  
a ponadto liczba <math>m</math> jest liczbą pseudopierwszą Dicksona drugiego rodzaju dla parametrów <math>P, Q</math> wyliczonych przy pomocy funkcji <code>MethodA()</code> z&nbsp;liczby <math>a_{k + r}</math>, czyli <math>P = 1</math>, <math>Q = (1 - a_{k + r}) / 4</math>.
 
  
Ponieważ w&nbsp;pętli <code>while</code> funkcji <code>MethodA()</code> mamy następujące linie
 
  
<span style="font-size: 90%; color:black;">a = -a - 2*'''sign'''(a); \\ następny wyraz ciągu (a_k)
+
== Symbol Legendre'a ==
js = jacobi(a, m);
 
'''if'''( js == 1, '''next'''() );</span>
 
  
to dla wszystkich liczb <math>a_j</math>, gdzie <math>k \leqslant j \leqslant k + r - 1</math> następuje przejście do liczby <math>a_{j + 1}</math>, aż do osiągnięcia wartości <math>a_{k + r}</math>.
+
<span style="font-size: 110%; font-weight: bold;">Definicja J32</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}} = \left\{ \begin{array}{rl}
 +
  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 \mid a \\
 +
\end{array} \right.</math>
  
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Uwaga J33</span><br/>
 +
Powyższa definicja pozwala nam zapisać kryterium Eulera w&nbsp;zwartej formie, która obejmuje również przypadek, gdy <math>p \mid a</math>
  
== Silnie pseudopierwsze liczby Lucasa i&nbsp;zmodyfikowana metoda Selfridge'a ==
+
::<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;">Przykład P15</span><br/>
 
Poniżej przedstawiamy najmniejsze liczby SLPSP(<math>P, Q</math>) oraz ilości tych liczb w&nbsp;zależności od wartości parametru <code>start</code> w&nbsp;funkcji <code>MethodA(m, start)</code>. Ponieważ <code>MethodA(m, 9) = MethodA(m, -11)</code> (zobacz P12), to pominęliśmy przypadek <code>MethodA(m, -11)</code>.
 
  
  
Ilość silnie pseudopierwszych liczb Lucasa mniejszych od <math>10^n</math> dla różnych parametrów <code>start</code> funkcji <code>MethodA()</code>.
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J34*</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: 90%; text-align: center; margin-right: auto;"
+
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: left; margin-right: auto;"
! <math>\boldsymbol{n}</math>
 
| style="width: 20px;" | <math>2</math> || style="width: 20px;" | <math>3</math> || style="width: 20px;" | <math>4</math> || style="width: 20px;" | <math>5</math> || style="width: 20px;" | <math>6</math> || style="width: 20px;" | <math>7</math> || style="width: 20px;" | <math>8</math> || style="width: 20px;" | <math>9</math> || style="width: 20px;" | <math>10</math> || style="width: 20px;" | <math>11</math> || style="width: 20px;" | <math>12</math> || style="width: 20px;" | <math>13</math> || style="width: 20px;" | <math>14</math> || style="width: 20px;" | <math>15</math>
 
 
|-
 
|-
! style="text-align: left" | MethodA(m, "*")<ref name="Jacobsen1"/>
+
| &nbsp;&nbsp;1.&nbsp;&nbsp; || <math>\left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \,\, = \,\, 0 \quad \Longleftrightarrow \quad \gcd (a, p) > 1</math>
| <math>0</math> || <math>0</math> || <math>2</math> || <math>12</math> || <math>58</math> || <math>178</math> || <math>505</math> || <math>1415</math> || <math>3622</math> || <math>9714</math> || <math>25542</math> || <math>67045</math> || <math>178118</math> || <math>474971</math>
 
 
|-
 
|-
! style="text-align: left" | MethodA(m, 5)
+
| &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>
| <math>0</math> || <math>0</math> || <math>2</math> || <math>12</math> || <math>58</math> || <math>178</math> || <math>505</math> || <math>1415</math> || <math>3622</math> || <math>9714</math> || <math>25542</math> || <math>67045</math> || <math>178118</math> || <math>474971</math>  
 
 
|-
 
|-
! style="text-align: left" | MethodA(m, -7)
+
| &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>0</math> || <math>0</math> || <math>1</math> || <math>14</math> || <math>62</math> || <math>210</math> || <math>601</math> || <math>1625</math> || <math>4261</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
 
 
|-
 
|-
! style="text-align: left" | MethodA(m, 9)
+
| &nbsp;&nbsp;4.&nbsp;&nbsp; || <math>a^{(p - 1) / 2} \equiv \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \pmod{p}</math>
| <math>0</math> || <math>1</math> || <math>3</math> || <math>20</math> || <math>73</math> || <math>219</math> || <math>604</math> || <math>1575</math> || <math>4162</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
 
 
|-
 
|-
! style="text-align: left" | MethodA(m, 13)
+
| &nbsp;&nbsp;5.&nbsp;&nbsp; || <math>\left( {\small\frac{1}{p}} \right)_{\small{\!\! L}} \,\, = \,\, 1</math>
| <math>0</math> || <math>2</math> || <math>5</math> || <math>23</math> || <math>67</math> || <math>200</math> || <math>545</math> || <math>1443</math> || <math>3891</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
 
 
|-
 
|-
! style="text-align: left" | MethodA(m, -15)  
+
| &nbsp;&nbsp;6.&nbsp;&nbsp; || <math>\left( {\small\frac{- 1}{p}} \right)_{\small{\!\! L}} \,\, = \,\, (- 1)^{\tfrac{p - 1}{2}} \,\, = \,\,
| <math>0</math> || <math>3</math> || <math>5</math> || <math>28</math> || <math>84</math> || <math>236</math> || <math>696</math> || <math>1953</math> || <math>5226</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
+
  \begin{cases}
 +
\;\;\: 1 & \text{gdy } p \equiv 1 \pmod{4} \\
 +
      - 1 & \text{gdy } p \equiv 3 \pmod{4} \\
 +
  \end{cases}</math>
 
|-
 
|-
! style="text-align: left" | MethodA(m, 17)
+
| &nbsp;&nbsp;7.&nbsp;&nbsp; || <math>\left( {\small\frac{2}{p}} \right)_{\small{\!\! L}} \,\, = \,\, (- 1)^{\tfrac{p^2 - 1}{8}} \,\, = \,\,
| <math>0</math> || <math>2</math> || <math>5</math> || <math>13</math> || <math>46</math> || <math>147</math> || <math>396</math> || <math>1091</math> || <math>2931</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
+
  \begin{cases}
 +
\;\;\: 1 & \text{gdy } p \equiv 1, 7 \pmod{8} \\
 +
      - 1 & \text{gdy } p \equiv 3, 5 \pmod{8} \\
 +
  \end{cases}</math>
 
|-
 
|-
! style="text-align: left" | MethodA(m, -19)  
+
| &nbsp;&nbsp;8.&nbsp;&nbsp; || <math>\left( {\small\frac{- 2}{p}} \right)_{\small{\!\! L}} \,\, = \,\, (- 1)^{\tfrac{(p - 1)(p - 3)}{8}} \,\, = \,\,
| <math>0</math> || <math>2</math> || <math>5</math> || <math>21</math> || <math>66</math> || <math>202</math> || <math>557</math> || <math>1493</math> || <math>3978</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
+
  \begin{cases}
 +
\;\;\: 1 & \text{gdy } p \equiv 1, 3 \pmod{8} \\
 +
      - 1 & \text{gdy } p \equiv 5, 7 \pmod{8} \\
 +
  \end{cases}</math>
 
|-
 
|-
! style="text-align: left" | MethodA(m, 21)
+
| &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
| <math>0</math> || <math>3</math> || <math>7</math> || <math>24</math> || <math>79</math> || <math>242</math> || <math>643</math> || <math>1723</math> || <math>4498</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
+
\begin{cases}
|-
+
\;\;\: 1 & \text{gdy } p \equiv 1 \pmod{4} \;\;\; \text{lub} \;\;\; q \equiv 1 \pmod{4} \\
! style="text-align: left" | MethodA(m, -23)  
+
      - 1 & \text{gdy } p \equiv q \equiv 3 \pmod{4} \\
| <math>0</math> || <math>3</math> || <math>8</math> || <math>24</math> || <math>88</math> || <math>236</math> || <math>639</math> || <math>1722</math> || <math>4597</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
+
  \end{cases}</math>
|-
 
! style="text-align: left" | MethodA(m, 25)  
 
| <math>0</math> || <math>3</math> || <math>11</math> || <math>37</math> || <math>105</math> || <math>295</math> || <math>812</math> || <math>2188</math> || <math>5879</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, -27)  
 
| <math>0</math> || <math>3</math> || <math>11</math> || <math>38</math> || <math>108</math> || <math>299</math> || <math>827</math> || <math>2224</math> || <math>5972</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 29)
 
| <math>1</math> || <math>2</math> || <math>5</math> || <math>27</math> || <math>69</math> || <math>160</math> || <math>500</math> || <math>1364</math> || <math>3583</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, -31)  
 
| <math>1</math> || <math>1</math> || <math>5</math> || <math>19</math> || <math>72</math> || <math>194</math> || <math>573</math> || <math>1551</math> || <math>3928</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>
 
|-
 
! style="text-align: left" | MethodA(m, 33)
 
| <math>0</math> || <math>0</math> || <math>5</math> || <math>19</math> || <math>73</math> || <math>199</math> || <math>537</math> || <math>1460</math> || <math>3705</math> || <math></math> || <math></math> || <math></math> || <math></math> || <math></math>  
 
 
|}
 
|}
  
  
Najmniejsze silnie pseudopierwsze liczby Lucasa dla różnych parametrów <code>start</code> funkcji <code>MethodA()</code>. Pogrubioną czcionką zostały zaznaczone te liczby, które są jednocześnie pseudopierwszymi liczbami Dicksona drugiego rodzaju (dla tego samego parametru <code>start</code>).
 
  
{| class="wikitable plainlinks"  style="font-size: 90%; text-align: left; margin-right: auto;"
+
<span style="font-size: 110%; font-weight: bold;">Zadanie J35</span><br/>
! style="text-align: left" | MethodA(m, "*")  
+
Niech <math>p</math> będzie liczbą pierwszą nieparzystą. Pokazać, że
| <math>5459, 5777, 10877, 16109, 18971, 22499, 24569, 25199, 40309, 58519, 75077, 97439, 100127, 113573, 115639, 130139, 155819, 158399, \ldots</math>
+
 
|-
+
:*&nbsp;&nbsp;jeżeli <math>a</math> jest liczbą kwadratową (niekwadratową) modulo <math>p</math>, to element odwrotny liczby <math>a</math> modulo <math>p</math> istnieje i jest liczbą kwadratową (niekwadratową) modulo <math>p</math>
! style="text-align: left" | MethodA(m, 5)  
+
 
| <math>5459, \boldsymbol{5777}, \boldsymbol{10877}, 16109, 18971, 22499, 24569, 25199, 40309, 58519, \boldsymbol{75077}, 97439, \boldsymbol{100127}, \boldsymbol{113573}, 115639, 130139, 155819, 158399, \ldots</math>
+
:*&nbsp;&nbsp;jeżeli <math>a, b</math> są liczbami kwadratowymi (niekwadratowymi) modulo <math>p</math>, to istnieje taka liczba <math>r</math>, że <math>a \equiv b r^2 \!\! \pmod{p}</math>
|-
+
 
! style="text-align: left" | MethodA(m, -7)  
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
| <math>5459, 10403, 16109, 18971, 22499, 24569, 25199, 40309, 40553, 51983, 58519, 70523, 81407, 97439, 113423, 115639, 130139, 155819, \ldots</math>
+
Z założenia <math>a</math> jest liczbą kwadratową (niekwadratową) modulo <math>p</math>, zatem <math>\gcd (a, p) = 1</math>, czyli element odwrotny (zobacz H18) liczby <math>a</math> modulo <math>p</math> istnieje. Mamy
|-
+
 
! style="text-align: left" | MethodA(m, 9)  
+
::<math>1 = \left( {\small\frac{1}{p}} \right)_{\small{\!\! L}}
| <math>899, 1127, 2407, 10403, 10877, 13817, 16109, 18971, 22499, 32399, 39203, 40553, 51983, 57599, 64979, 81407, 82109, 93023, 97289, \ldots</math>
+
= \left( {\small\frac{a a^{- 1}}{p}} \right)_{\small{\!\! L}}
|-
+
= \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \cdot \left( {\small\frac{a^{- 1}}{p}} \right)_{\small{\!\! L}}</math>
! style="text-align: left" | MethodA(m, 13)
+
 
| <math>799, 989, 1127, 2407, 5429, 10793, 10877, 13529, 13817, 15539, 16109, 19109, 22499, 24119, 27403, 32399, 35459, 37399, 37949, 57599, \ldots</math>
+
Zatem musi być
|-
+
 
! style="text-align: left" | MethodA(m, -15)
+
::<math>\left( {\small\frac{a^{- 1}}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}}</math>
| <math>559, 899, 989, 1127, 3599, 10793, 10877, 11663, 13529, 15539, 19109, 22499, 23939, 24119, 27403, 32399, 41309, 46079, 49769, 57599, \ldots</math>
+
 
|-
+
Co należało pokazać.
! style="text-align: left" | MethodA(m, 17)
+
 
| <math>559, 899, 1127, 1769, 3479, 10793, 10877, 11663, 34271, 60377, 62831, 70337, 96029, 103739, 112391, 114911, 126479, 159731, 186659, \ldots</math>
+
 
|-
+
Niech <math>a, b</math> będą liczbami kwadratowymi (niekwadratowymi). Iloczyn <math>a b^{- 1}</math> jest liczbą kwadratową, bo
! style="text-align: left" | MethodA(m, -19)  
+
 
| <math>559, 899, 1769, 5207, 8579, 10793, 11663, 12449, 32239, 34271, 58589, 60377, 62831, 70337, 72389, 72899, 79883, 84419, 93869, 96029, \ldots</math>
+
::<math>\left( {\small\frac{a b^{- 1}}{p}} \right)_{\small{\!\! L}}
|-
+
= \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \cdot \left( {\small\frac{b^{- 1}}{p}} \right)_{\small{\!\! L}}
! style="text-align: left" | MethodA(m, 21)  
+
= \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \cdot \left( {\small\frac{b}{p}} \right)_{\small{\!\! L}}
| <math>143, 629, 899, 2881, 3791, 5183, 5207, 10793, 11663, 12449, 16279, 17621, 20473, 36863, 38869, 48707, 62831, 65207, 79523, 79883, 87047, \ldots</math>
+
= \left( \pm 1 \right) \cdot \left( \pm 1 \right)
|-
+
= \left( \pm 1 \right)^2
! style="text-align: left" | MethodA(m, -23)
+
= 1</math>
| <math>143, 629, 899, 2881, 5183, 5207, 5777, 6901, 10793, 12449, 16279, 22753, 29369, 36863, 37151, 51179, 51641, 62831, 72863, 79523, 79883, \ldots</math>
+
 
|-
+
Zatem istnieje taka liczba <math>r</math>, że
! style="text-align: left" | MethodA(m, 25)
+
 
| <math>143, 629, 899, 1763, 2881, 4619, 5183, 5207, 5777, 6439, 6901, 10793, 12449, 16279, 19043, 22753, 31877, 32399, 37151, 37949, 39203, 48827, \ldots</math>
+
::<math>a b^{- 1} \equiv r^2 \!\! \pmod{p}</math>
|-
+
 
! style="text-align: left" | MethodA(m, -27)  
+
Czyli
| <math>143, 629, 899, 1763, 2881, 4619, 5183, 5207, 5777, 6439, 6901, 10793, 12449, 16279, 19043, 20705, 22753, 31877, 32399, 37151, 37949, 39203, \ldots</math>
+
 
|-
+
::<math>a \equiv b r^2 \!\! \pmod{p}</math>
! style="text-align: left" | MethodA(m, 29)
+
 
| <math>989, 2881, 6439, 6901, 10403, 10877, 11327, 13199, 13529, 16279, 17249, 19109, 21299, 22753, 33947, 37127, 46031, 60587, 61913, 64523, \ldots</math>
+
Co należało pokazać.<br/>
|-
+
&#9633;
! style="text-align: left" | MethodA(m, -31)  
+
{{\Spoiler}}
| <math>1007, 2743, 6439, 6901, 10403, 13199, 15503, 17249, 21299, 22577, 33947, 37127, 50399, 60587, 88409, 89389, 97663, 99007, 101567, 107879, \ldots</math>
+
 
|-
+
 
! style="text-align: left" | MethodA(m, 33)  
+
 
| <math>1829, 3007, 5777, 6901, 8909, 10403, 13529, 21299, 22577, 28673, 30743, 33947, 36893, 37127, 64523, 64619, 88409, 89389, 98789, 112949, \ldots</math>
+
 
|}
+
 
 +
== Symbol Jacobiego ==
 +
 
 +
<span style="font-size: 110%; font-weight: bold;">Definicja J36</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 \mid (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 J37</span><br/>
 +
Prosta funkcja pozwala łatwo sprawdzić, czy liczba <math>a</math> jest liczbą kwadratową modulo <math>m</math>.
 +
 
 +
<span style="font-size: 90%; color:black;">isQR(a, m) =
 +
\\ funkcja zwraca 1, gdy a jest liczbą kwadratową modulo m,
 +
\\ -1, gdy a jest liczbą niekwadratową i 0, gdy gcd(a, m) > 1
 +
{
 +
'''local'''(w);
 +
'''if'''( '''gcd'''(a, m) > 1, '''return'''(0) ); \\ liczba nie jest ani QR, ani QNR
 +
w = -1;
 +
'''for'''(k = 1, '''floor'''(m/2), '''if'''( (k^2 - a)%m == 0, w = 1; '''break'''() ));
 +
'''return'''(w);
 +
}</span>
 +
 
 +
 
 +
 
 +
<span style="font-size: 110%; font-weight: bold;">Uwaga J38</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ą dodatnią 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 J39</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 J12.<br/>
 +
&#9633;
 +
{{\Spoiler}}
 +
 
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Definicja J40</span><br/>
 +
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
  
<span style="font-size: 110%; font-weight: bold;">Uwaga P16</span><br/>
+
::<math>\left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} = \prod_i \left( {\small\frac{a}{p_i}} \right)_{\small{\!\! L}}^{\!\! \alpha_i}</math>
Przyglądając się wierszom drugiej tabeli z&nbsp;przykładu P15, łatwo zauważamy, że w&nbsp;wierszach położonych blisko siebie często występują te same liczby. Zbadamy teraz, ile jest wspólnych liczb między poszczególnymi wierszami.
 
  
Pokazana niżej tabela powstała po znalezienia wszystkich liczb <code>SLPSP(m, a)</code>, gdzie
 
  
::<math>a \in \{</math><big><tt>"*"</tt></big><math>, -7, 9, 13, -15, 17, -19, 21, -23, 25, -27, 29, -31, 33 \}</math>
 
  
i <math>m < 10^{10}</math>. Następnie policzyliśmy ilość liczb SLPSP wspólnych dla różnych parametrów <math>a</math>.
+
<span style="font-size: 110%; font-weight: bold;">Uwaga J41</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>.
  
Zauważamy, że im bardziej odległe są parametry <code>a</code>, to tym mniej pojawia się wspólnych liczb SLPSP.
 
  
Ten sam efekt występuje w&nbsp;przypadku liczb D2PSP. Choć dysponujemy w&nbsp;tym przypadku zaledwie 25 różnymi liczbami (nie uwzględniamy liczb wypisanych w&nbsp;drugim wierszu), to zdarza się, że powtarzają się one w&nbsp;sąsiadujących wierszach.
 
  
Wynika stąd praktyczny wniosek: jeśli chcemy przeprowadzić dwa testy <code>SLPSP(m, a)</code> dla różnych parametrów <code>a</code>, to powinny to być raczej <code>SLPSP(m, "*")</code> i <code>SLPSP(m, 33)</code>, a&nbsp;nie np. <code>SLPSP(m, "*")</code> i <code>SLPSP(m, -7)</code>.
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J42*</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: 90%; text-align: center; margin-right: auto;"
+
::{| class="wikitable plainlinks"  style="font-size: 100%; text-align: left; margin-right: auto;"
 
|-
 
|-
! <math>\boldsymbol{a}</math> || <big><tt>"*"</tt></big> || <math>\boldsymbol{-7}</math> || <math>\boldsymbol{9}</math> || <math>\boldsymbol{13}</math> || <math>\boldsymbol{-15}</math> || <math>\boldsymbol{17}</math> || <math>\boldsymbol{-19}</math> || <math>\boldsymbol{21}</math> || <math>\boldsymbol{-23}</math> || <math>\boldsymbol{25}</math> || <math>\boldsymbol{-27}</math> || <math>\boldsymbol{29}</math> || <math>\boldsymbol{-31}</math> || <math>\boldsymbol{33}</math>
+
| &nbsp;&nbsp;1.&nbsp;&nbsp; || <math>\left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} \,\, = \,\, 0 \quad \Longleftrightarrow \quad \gcd (a, n) > 1</math>
 
|-
 
|-
! <big><tt>"*"</tt></big>
+
| &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>—</math> || <math>2904</math> || <math>1203</math> || <math>711</math> || <math>655</math> || <math>199</math> || <math>223</math> || <math>199</math> || <math>199</math> || <math>236</math> || <math>236</math> || <math>180</math> || <math>179</math> || <math>173</math>
 
 
|-
 
|-
! <math>\boldsymbol{-7}</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>2904</math> || <math>—</math> || <math>1760</math> || <math>855</math> || <math>743</math> || <math>256</math> || <math>288</math> || <math>290</math> || <math>216</math> || <math>260</math> || <math>261</math> || <math>213</math> || <math>221</math> || <math>198</math>
 
 
|-
 
|-
! <math>\boldsymbol{9}</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>1203</math> || <math>1760</math> || <math>—</math> || <math>1897</math> || <math>1483</math> || <math>448</math> || <math>421</math> || <math>417</math> || <math>343</math> || <math>436</math> || <math>436</math> || <math>196</math> || <math>181</math> || <math>228</math>
 
 
|-
 
|-
! <math>\boldsymbol{13}</math>
+
| &nbsp;&nbsp;5.&nbsp;&nbsp; || <math>\left( {\small\frac{1}{n}} \right)_{\small{\!\! J}} \,\, = \,\, 1</math>
| <math>711</math> || <math>855</math> || <math>1897</math> || <math>—</math> || <math>2833</math> || <math>777</math> || <math>609</math> || <math>436</math> || <math>370</math> || <math>351</math> || <math>351</math> || <math>196</math> || <math>170</math> || <math>188</math>
 
 
|-
 
|-
! <math>\boldsymbol{-15}</math>
+
| &nbsp;&nbsp;6.&nbsp;&nbsp; || <math>\left( {\small\frac{- 1}{n}} \right)_{\small{\!\! J}} \,\, = \,\, (- 1)^{\tfrac{n - 1}{2}} \,\, = \,\,
| <math>655</math> || <math>743</math> || <math>1483</math> || <math>2833</math> || <math>—</math> || <math>1313</math> || <math>1064</math> || <math>727</math> || <math>613</math> || <math>578</math> || <math>578</math> || <math>303</math> || <math>260</math> || <math>291</math>
+
  \begin{cases}
 +
\;\;\: 1 & \text{gdy } n \equiv 1 \pmod{4} \\
 +
      - 1 & \text{gdy } n \equiv 3 \pmod{4} \\
 +
  \end{cases}</math>
 
|-
 
|-
! <math>\boldsymbol{17}</math>
+
| &nbsp;&nbsp;7.&nbsp;&nbsp; || <math>\left( {\small\frac{2}{n}} \right)_{\small{\!\! J}} \,\, = \,\, (- 1)^{\tfrac{n^2 - 1}{8}} \,\, = \,\,
| <math>199</math> || <math>256</math> || <math>448</math> || <math>777</math> || <math>1313</math> || <math>—</math> || <math>2037</math> || <math>1146</math> || <math>862</math> || <math>654</math> || <math>654</math> || <math>171</math> || <math>129</math> || <math>137</math>
+
  \begin{cases}
 +
\;\;\: 1 & \text{gdy } n \equiv 1, 7 \pmod{8} \\
 +
      - 1 & \text{gdy } n \equiv 3, 5 \pmod{8} \\
 +
  \end{cases}</math>
 
|-
 
|-
! <math>\boldsymbol{-19}</math>
+
| &nbsp;&nbsp;8.&nbsp;&nbsp; || <math>\left( {\small\frac{- 2}{n}} \right)_{\small{\!\! J}} \,\, = \,\, (- 1)^{\tfrac{(n - 1)(n - 3)}{8}} \,\, = \,\,
| <math>223</math> || <math>288</math> || <math>421</math> || <math>609</math> || <math>1064</math> || <math>2037</math> || <math>—</math> || <math>2231</math> || <math>1668</math> || <math>1236</math> || <math>1236</math> || <math>241</math> || <math>199</math> || <math>190</math>
+
  \begin{cases}
 +
\;\;\: 1 & \text{gdy } n \equiv 1, 3 \pmod{8} \\
 +
      - 1 & \text{gdy } n \equiv 5, 7 \pmod{8} \\
 +
  \end{cases}</math>
 
|-
 
|-
! <math>\boldsymbol{21}</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
| <math>199</math> || <math>290</math> || <math>417</math> || <math>436</math> || <math>727</math> || <math>1146</math> || <math>2231</math> || <math>—</math> || <math>3251</math> || <math>2342</math> || <math>2342</math> || <math>336</math> || <math>278</math> || <math>270</math>
+
\begin{cases}
|-
+
\;\;\: 1 & \text{gdy } m \equiv 1 \pmod{4} \;\;\; \text{lub} \;\;\; n \equiv 1 \pmod{4} \\
! <math>\boldsymbol{-23}</math>
+
      - 1 & \text{gdy } m \equiv n \equiv 3 \pmod{4} \\
| <math>199</math> || <math>216</math> || <math>343</math> || <math>370</math> || <math>613</math> || <math>862</math> || <math>1668</math> || <math>3251</math> || <math>—</math> || <math>2937</math> || <math>2937</math> || <math>475</math> || <math>360</math> || <math>275</math>
+
  \end{cases}</math>
|-
 
! <math>\boldsymbol{25}</math>
 
| <math>236</math> || <math>260</math> || <math>436</math> || <math>351</math> || <math>578</math> || <math>654</math> || <math>1236</math> || <math>2342</math> || <math>2937</math> || <math>—</math> || <math>5879</math> || <math>855</math> || <math>657</math> || <math>480</math>
 
|-
 
! <math>\boldsymbol{-27}</math>
 
| <math>236</math> || <math>261</math> || <math>436</math> || <math>351</math> || <math>578</math> || <math>654</math> || <math>1236</math> || <math>2342</math> || <math>2937</math> || <math>5879</math> || <math>—</math> || <math>857</math> || <math>659</math> || <math>480</math>
 
|-
 
! <math>\boldsymbol{29}</math>
 
| <math>180</math> || <math>213</math> || <math>196</math> || <math>196</math> || <math>303</math> || <math>171</math> || <math>241</math> || <math>336</math> || <math>475</math> || <math>855</math> || <math>857</math> || <math>—</math> || <math>2079</math> || <math>1003</math>
 
|-
 
! <math>\boldsymbol{-31}</math>
 
| <math>179</math> || <math>221</math> || <math>181</math> || <math>170</math> || <math>260</math> || <math>129</math> || <math>199</math> || <math>278</math> || <math>360</math> || <math>657</math> || <math>659</math> || <math>2079</math> || <math>—</math> || <math>1857</math>
 
|-
 
! <math>\boldsymbol{33}</math>
 
| <math>173</math> || <math>198</math> || <math>228</math> || <math>188</math> || <math>291</math> || <math>137</math> || <math>190</math> || <math>270</math> || <math>275</math> || <math>480</math> || <math>480</math> || <math>1003</math> || <math>1857</math> || <math>—</math>
 
 
|}
 
|}
  
  
 +
 +
<span style="font-size: 110%; font-weight: bold;">Uwaga J43</span><br/>
 +
Zauważmy, że poza zmienionym założeniem tabela z&nbsp;powyższego twierdzenia i&nbsp;tabela z&nbsp;twierdzenia J34 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.
  
  
  
== Wzmocnienie testu BPSW ==
+
<span style="font-size: 110%; font-weight: bold;">Uwaga J44</span><br/>
 +
Zauważmy, że w&nbsp;przypadku, gdy <math>m</math> jest liczbą nieparzystą
  
<span style="font-size: 110%; font-weight: bold;">Uwaga P17</span><br/>
+
:* jeżeli <math>\left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1</math>, to <math>a</math> jest liczbą niekwadratową modulo <math>m</math>
Dla wszystkich rozpatrywanych tutaj parametrów <code>start</code> takich, że
+
:* 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>
  
::<tt>start</tt> <math>\in \{</math><tt>"*"</tt><math>, -7, 9, 13, -15, 17, -19, 21, -23, 25, -27, 29, -31, 33 \}</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>.
  
(czyli poza przypadkiem niezmodyfikowanej metody Selfridge'a – funkcja <code>MethodA(m, 5)</code>) znaleźliśmy <math>25</math> liczb pseudopierwszych Dicksona drugiego rodzaju. Większość z&nbsp;nich to liczby mniejsze od <math>10^{10}</math> (zobacz P14). Żadna z&nbsp;tych liczb nie jest silnie pseudopierwszą liczbą Lucasa (SLPSP) i&nbsp;nie zależy to od wyboru wartości parametru <code>start</code> w&nbsp;funkcji <code>StrongLucasTest(m, start)</code> (również dla <code>start = 5</code>).
+
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>.
  
Przypomnijmy, że nie znamy liczb nieparzystych <math>m</math>, które byłyby jednocześnie liczbami silnie pseudopierwszymi (SPSP) i&nbsp;silnie pseudopierwszymi liczbami Lucasa (SLPSP) dla <math>m < 2^{64}</math>. Jest bardzo prawdopodobne, że równie rzadko występują liczby, które są jednocześnie silnie pseudopierwszymi liczbami Lucasa (SLPSP) i&nbsp;pseudopierwszymi liczbami Dicksona drugiego rodzaju (D2PSP). Stanowi to dobrą przesłankę do wzmocnienia testu BPSW.
 
  
  
Zatem wykorzystując funkcję Dickson2Test(m), możemy otrzymać test znacznie silniejszy od testu BPSW.
+
<span style="font-size: 110%; font-weight: bold;">Uwaga J45</span><br/>
 +
Wszystkie liczby kwadratowe i&nbsp;niekwadratowe modulo <math>m</math> można łatwo znaleźć, wykorzystując prosty program:
  
  <span style="font-size: 90%; color:black;">BPSW2test(m) =
+
{{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'''(p);
+
  '''local'''(k, S, V);
  '''forprime'''(p = 2, 1000, '''if'''( m % p > 0, next() ); '''if'''( m == p, '''return'''(1), '''return'''(0) ));
+
S = [];
  '''if'''( !isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 2), '''return'''(0) );
+
V = [];
'''if'''( !StrongLucasTest(m), '''return'''(0) );
+
  '''for'''(k = 1, m - 1, '''if'''( '''gcd'''(k, m) > 1, '''next'''() ); S = '''concat'''(S, k));
  '''if'''( !Dickson2Test(m), '''return'''(0), '''return'''(1) );
+
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>
 
  }</span>
 +
<br/>
 +
{{\Spoiler}}
 +
 +
 +
 +
<span style="font-size: 110%; font-weight: bold;">Zadanie J46</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 J47</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
 +
 +
::<math>m = 12 k + 1 \equiv 1 \pmod{4}</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 J42 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 J42 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>
  
Oczywiście możemy (a nawet powinniśmy), napisać program, w&nbsp;którym połączymy testy StrongLucasTest(m) i&nbsp;Dickson2Test(m).
+
::<math>\left( {\small\frac{9}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{5}} \right)_{\small{\!\! J}}^{\! 2} = 1</math>
  
  <span style="font-size: 90%; color:black;">StrongLucasAndDickson2Test(m) =
+
Co należało pokazać.<br/>
 +
&#9633;
 +
{{\Spoiler}}
 +
 
 +
 
 +
 
 +
<span style="font-size: 110%; font-weight: bold;">Uwaga J48</span><br/>
 +
Wykorzystując podane w&nbsp;twierdzeniu J42 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'''(a, b, c, k, P, Q, r, SLT, w, X);
+
  '''local'''(r, w);
  '''if'''( m%2 == 0, '''return'''(m == 2) );
+
  '''if'''( n <= 0 || n % 2 == 0, '''return'''("Error") );
  '''if'''( '''issquare'''(m), '''return'''(0) ); \\ sprawdzamy, czy liczba m nie jest kwadratowa
+
  a = a % n; \\ korzystamy ze wzoru (a|n) = (b|n), gdy a &equiv; b (mod n)
X = MethodA(m);
+
  w = 1;
  P = X[1];
+
  '''while'''( a <> 0,
Q = X[2];
+
        '''while'''( a % 2 == 0, a = a/2; r = n % 8; '''if'''( r == 3 || r == 5, w = -w ) );
  '''if'''( P == 0, '''return'''(0) ); \\ jeżeli P = 0, to m jest liczbą złożoną
+
        \\ usunęliśmy czynnik 2 ze zmiennej a, uwzględniając, że (2|n) = -1, gdy n &equiv; 3,5 (mod 8)
r = '''valuation'''(m + 1, 2); \\ znajdujemy wykładnik, z jakim liczba 2 występuje w m + 1
+
        \\ teraz zmienne a oraz n są nieparzyste
w = (m + 1) / 2^r;
+
        r = a; \\ zmienna r tylko przechowuje wartość a
X = modLucas(w, P, Q, m);
+
        a = n;
a = X[1]; \\ U_w(P, Q) % m
+
         n = r;
b = X[2]; \\ V_w(P, Q) % m
+
         '''if'''( a % 4 == 3 && n % 4 == 3, w = -w );
SLT = 0;
+
        \\ zamieniliśmy zmienne, uwzględniając, że (a|n) = - (n|a), gdy a &equiv; n &equiv; 3 (mod 4)
'''if'''( a == 0 || b == 0, SLT = 1 ); \\ b == 0 to przypadek k == 0
+
         a = a % n;
c = modPower(Q, w, m); \\ Q^w % m
 
k = 0;
 
\\ sprawdzamy warunek V_(2^k * w) %m = 0; korzystamy ze wzoru V_(2*w) = (V_w)^2 - 2*Q^w
 
'''while'''( k++ < r,
 
         b = (b^2 - 2*c) % m;
 
         '''if'''( SLT == && b == 0, SLT = 1 );
 
         c = c^2 % m;
 
 
       );
 
       );
  '''if'''( SLT == 0, '''return'''(0) ); \\ liczba m nie przeszła silnego testu Lucasa
+
  '''if'''( n == 1, '''return'''(w), '''return'''(0) ); \\ n jest teraz równe gcd(a, n)
b = (b^2 - 2*c) % m; \\ V_(m+1)(P, Q) % m
 
'''if'''( b == (2*Q) % m, '''return'''(1), '''return'''(0) );
 
 
  }</span>
 
  }</span>
 +
 +
Zauważmy, że PARI/GP ma zaimplementowaną funkcję, która pozwala obliczać symbol Jacobiego. Jeżeli <math>a</math> jest liczbą całkowitą, a <math>n</math>
 +
dodatnią liczbą nieparzystą, to wystarczy napisać
 +
 +
<span style="font-size: 90%; color:black;">kronecker(a, n)</span>
 +
 +
aby otrzymać wartość symbolu Jacobiego <math>\left( {\small\frac{a}{n}} \right)_{\small{\!\! J}}</math>.
 +
 +
Kod funkcji podaliśmy dlatego, że jest to ważna funkcja i Czytelnik powinien wiedzieć, jak jest realizowana. Znajomość kodu pozwala łatwo zapisać program w innych językach i obliczać wartości tej funkcji bez korzystania z programu PARI/GP.
 +
  
  
Zauważmy, że po takim połączeniu czas obliczeń w&nbsp;przypadku testu BPSW2(m) nie ulega praktycznie wydłużeniu w&nbsp;stosunku do testu BPSW(m), bo funkcja modLucas() wylicza jednocześnie liczby <math>U_m (P, Q)</math> i <math>V_m (P, Q)</math> modulo <math>n</math>. Uzyskaliśmy w&nbsp;ten sposób bardzo silne narzędzie do badania pierwszości liczb:
+
<span style="font-size: 110%; font-weight: bold;">Uwaga J49</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.
  
<span style="font-size: 90%; color:black;">BPSW2test(m) =
+
W przyszłości symbol Legendre'a / Jacobiego będziemy zapisywali w&nbsp;formie uproszczonej <math>(a \mid m)</math> i&nbsp;nie będziemy rozróżniali tych symboli. Interpretacja zapisu jest prosta:
{
 
'''local'''(p);
 
'''forprime'''(p = 2, 1000, '''if'''( m % p > 0, '''next'''() ); '''if'''( m == p, '''return'''(1), '''return'''(0) ));
 
'''if'''( !isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 2), '''return'''(0) );
 
'''if'''( !StrongLucasAndDickson2Test(m), '''return'''(0), '''return'''(1) );
 
}</span>
 
  
 +
:* jeżeli '''wiemy''', że <math>m</math> jest liczbą pierwszą, to symbol <math>(a \mid m)</math> jest symbolem Legendre'a
 +
:* jeżeli '''wiemy''', że <math>m</math> jest liczbą złożoną, to symbol <math>(a \mid m)</math> jest symbolem Jacobiego
 +
:* jeżeli '''nie wiemy''', czy <math>m</math> jest liczbą pierwszą, czy złożoną, to symbol <math>(a \mid m)</math> jest symbolem Jacobiego
  
  
  
  
== Uzupełnienie ==
 
  
Dowody twierdzeń P18 i&nbsp;P19 zostały oparte na pomyśle przedstawionym przez Bailliego, Fioriego i&nbsp;Wagstaffa<ref name="BaillieFioriWagstaff1"/>.<br/>
+
== Rozwiązywanie kongruencji <math>x^2 \equiv a \!\! \pmod{m}</math> ==
<span style="font-size: 110%; font-weight: bold;">Twierdzenie P18</span><br/>
 
Liczba nieparzysta <math>m</math> jest LPSP(<math>1, - 1</math>) wtedy i&nbsp;tylko wtedy, gdy <math>m</math> jest LPSP(<math>5, 5</math>).
 
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J50</span><br/>
W zadaniu N12 połóżmy <math>Q = 1</math> i&nbsp;konsekwentnie <math>P = 4 Q + 1 = 5</math>. Pierwszy z&nbsp;wypisanych wzorów przyjmie postać
+
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>U_{2 k} (5, 5) = 5^k U_{2 k} (1, - 1)</math>
+
::<math>x^2 \equiv a \pmod{p^n}</math>
  
Z założenia <math>m</math> jest liczbą nieparzystą, zatem dla parzystej liczby <math>m - \epsilon</math>, gdzie <math>\epsilon = (D \mid m) = \pm 1</math> jest
+
ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy kongruencja
  
::<math>U_{m - \epsilon} (5, 5) = 5^{(m - \epsilon) / 2} U_{m - \epsilon} (1, - 1)</math>
+
::<math>x^2 \equiv a \pmod{p}</math>
  
Zauważmy, że
+
ma rozwiązanie.
  
:* dla <math>(P, Q) = (1, - 1) \;\; \text{i} \;\; (P, Q) = (5, 5)</math> jest <math>D = P^2 - 4 Q = 5</math>
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
:* <math>\gcd (m, - 5) = 1</math> wtedy i&nbsp;tylko wtedy, gdy <math>\gcd (m, 25) = 1</math>
 
:* <math>U_{m - \epsilon} (5, 5) \equiv 5^{(m - \epsilon) / 2} U_{m - \epsilon} (1, - 1) \pmod{m}</math>
 
  
 
<math>\Large{\Longrightarrow}</math>
 
<math>\Large{\Longrightarrow}</math>
  
Jeżeli <math>m</math> jest LPSP(<math>1, - 1</math>), to <math>\gcd (m, - 5) = 1</math> i <math>U_{m - \epsilon} (1, - 1) \equiv 0 \pmod{m}</math>, zatem <math>\gcd (m, 25) = 1</math> i <math>U_{m - \epsilon} (5, 5) \equiv 0 \pmod{m}</math>. Czyli <math>m</math> jest LPSP(<math>5, 5</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 \mid (r^2 - a)</math>, to tym bardziej <math>p \mid (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>
 
<math>\Large{\Longleftarrow}</math>
  
Jeżeli <math>m</math> jest LPSP(<math>5, 5</math>), to <math>\gcd (m, 25) = 1</math> i <math>U_{m - \epsilon} (5, 5) \equiv 0 \pmod{m}</math>, zatem <math>\gcd (m, - 5) = 1</math> i
+
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 C76). 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>5^{(m - \epsilon) / 2} U_{m - \epsilon} (1, - 1) \equiv 0 \pmod{m}</math>
+
::<math>(u_n + s_0 p^n)^2 \equiv a \pmod{p^{n + 1}}</math>
  
Ponieważ <math>\gcd (m, 5) = 1</math>, to z&nbsp;powyższej kongruencji wynika natychmiast, że (zobacz C74)
+
bo <math>p^{n + 1} \mid p^{2 n}</math>. Zatem liczba <math>u_{n + 1} = u_n + s_0 p^n</math> jest rozwiązaniem kongruencji
  
::<math>U_{m - \epsilon} (1, - 1) \equiv 0 \pmod{m}</math>
+
::<math>x^2 \equiv a \pmod{p^{n + 1}}</math>
  
Czyli <math>m</math> jest LPSP(<math>1, - 1</math>). Co należało pokazać.<br/>
+
Pokazaliśmy tym samym prawdziwość tezy indukcyjnej, co kończy dowód indukcyjny.<br/>
 
&#9633;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
Linia 968: Linia 1518:
  
  
<span style="font-size: 110%; font-weight: bold;">Twierdzenie P19</span><br/>
+
<span style="font-size: 110%; font-weight: bold;">Uwaga J51</span><br/>
Liczba nieparzysta <math>m</math> jest SLPSP(<math>1, - 1</math>) wtedy i&nbsp;tylko wtedy, gdy <math>m</math> jest SLPSP(<math>5, 5</math>).
+
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 \mid 2^n</math>.
  
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
+
Kongruencja
W zadaniu N12 połóżmy <math>Q = 1</math> i&nbsp;konsekwentnie <math>P = 4 Q + 1 = 5</math>. Drugi, czwarty i&nbsp;trzeci z&nbsp;wypisanych wzorów przyjmą postać
 
  
::<math>U_{2 k + 1} (5, 5) = 5^k V_{2 k + 1} (1, - 1)</math>
+
::<math>x^2 \equiv a \pmod{2}</math>
  
::<math>V_{2 k + 1} (5, 5) = 5^{k + 1} U_{2 k + 1} (1, - 1)</math>
+
ma dokładnie jedno rozwiązanie <math>x \equiv 1 \!\! \pmod{2}</math>.
  
::<math>V_{2 k} (5, 5) = 5^k V_{2 k} (1, - 1)</math>
+
Kongruencja
  
 +
::<math>x^2 \equiv a \pmod{4}</math>
  
Niech <math>m - (D \mid m) = 2^r w</math>, gdzie <math>w</math> jest liczbą nieparzystą. Uwzględniając wypisane wyżej wzory, zauważmy, że
+
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ń.
  
:* dla <math>(P, Q) = (1, - 1) \;\; \text{i} \;\; (P, Q) = (5, 5)</math> jest <math>D = P^2 - 4 Q = 5</math>
+
Kongruencja
:* <math>\gcd (m, - 5) = 1</math> wtedy i&nbsp;tylko wtedy, gdy <math>\gcd (m, 25) = 1</math>
 
:* <math>U_w (5, 5) \equiv 5^{(w - 1) / 2} V_w (1, - 1) \pmod{m}</math>
 
:* <math>V_w (5, 5) \equiv 5^{(w + 1) / 2} U_w (1, - 1) \pmod{m}</math>
 
:* <math>V_{2^j w} (5, 5) \equiv 5^{2^{j - 1} w} V_{2^j w} (1, - 1) \pmod{m} \qquad</math> gdzie <math>j \geqslant 1</math>
 
  
 +
::<math>x^2 \equiv a \pmod{8}</math>
  
Liczba <math>m</math> jest SLPSP(<math>1, - 1</math>) jeżeli <math>\gcd (m, - 5) = 1</math> i&nbsp;zachodzi dokładnie jeden z&nbsp;warunków
+
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ń.
  
::A) <math>\; U_w (1, - 1) \equiv 0 \pmod{m}</math>
 
  
::B) <math>\; V_w (1, - 1) \equiv 0 \pmod{m}</math>
 
  
::C) <math>\; V_{2^j w} (1, - 1) \equiv 0 \pmod{m} \qquad</math> dla pewnego <math>j \in [1, r - 1]</math> (w przypadku, gdy <math>r \geqslant 2</math>)
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J52</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>
  
Podobnie, liczba <math>m</math> jest SLPSP(<math>5, 5</math>) jeżeli <math>\gcd (m, 25) = 1</math> i&nbsp;zachodzi dokładnie jeden z&nbsp;warunków
+
ma rozwiązanie wtedy i&nbsp;tylko wtedy, gdy kongruencja
  
::a) <math>\; U_w (5, 5) \equiv 0 \pmod{m}</math>
+
::<math>x^2 \equiv a \pmod{8}</math>
  
::b) <math>\; V_w (5, 5) \equiv 0 \pmod{m}</math>
+
ma rozwiązanie.
  
::c) <math>\; V_{2^j w} (5, 5) \equiv 0 \pmod{m} \qquad</math> dla pewnego <math>j \in [1, r - 1] </math> (w przypadku, gdy <math>r \geqslant 2</math>)
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Dowód|Hide=Ukryj dowód}}
  
 
<math>\Large{\Longrightarrow}</math>
 
<math>\Large{\Longrightarrow}</math>
  
Jeżeli <math>m</math> jest SLPSP(<math>1, - 1</math>), to <math>\gcd (m, - 5) = 1</math> i&nbsp;zachodzi dokładnie jeden z&nbsp;warunków A), B), C). Zatem <math>\gcd (m, 25) = 1</math> i&nbsp;zachodzi dokładnie jeden z&nbsp;warunków a), b), c). Czyli <math>m</math> jest SLPSP(<math>5, 5</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 \mid (r^2 - a)</math>, gdzie <math>n \geqslant 3</math>, to tym bardziej <math>2^3 \mid (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>
 
<math>\Large{\Longleftarrow}</math>
  
Jeżeli <math>m</math> jest SLPSP(<math>5, 5</math>), to <math>\gcd (m, 25) = 1</math> i&nbsp;zachodzi dokładnie jeden z&nbsp;warunków a), b), c). Zatem <math>\gcd (m, - 5) = 1</math> i&nbsp;zachodzi dokładnie jedna z&nbsp;kongruencji
+
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>
  
::<math>5^{(w - 1) / 2} V_w (1, - 1) \equiv 0 \pmod{m}</math>
+
Zauważmy, że
  
::<math>5^{(w + 1) / 2} U_w (1, - 1) \equiv 0 \pmod{m}</math>
+
::<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>5^{2^{j - 1} w} V_{2^j w} (1, - 1) \equiv 0 \pmod{m}</math>
+
::::::::<math>\;\! = k \cdot 2^n + 2^n r + r^2 \cdot 2^{2 n - 2}</math>
  
Ponieważ <math>\gcd (m, 5) = 1</math>, to z&nbsp;powyższych wzorów wynika natychmiast, że zachodzi dokładnie jedna z&nbsp;kongruencji (zobacz C74)
+
::::::::<math>\;\! = 2^n (k + r) + r^2 \cdot 2^{2 n - 2}</math>
  
::<math>V_w (1, - 1) \equiv 0 \pmod{m}</math>
+
::::::::<math>\;\! \equiv 0 \pmod{2^{n + 1}}</math>
  
::<math>U_w (1, - 1) \equiv 0 \pmod{m}</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>V_{2^j w} (1, - 1) \equiv 0 \pmod{m}</math>
+
::<math>x^2 \equiv a \pmod{2^{n + 1}}</math>
  
Co oznacza, że zachodzi dokładnie jeden z&nbsp;warunków A), B), C). Czyli <math>m</math> jest SLPSP(<math>1, - 1</math>). Co należało pokazać.<br/>
+
Pokazaliśmy tym samym prawdziwość tezy indukcyjnej, co kończy dowód indukcyjny.<br/>
 
&#9633;
 
&#9633;
 
{{\Spoiler}}
 
{{\Spoiler}}
  
  
 +
<span style="font-size: 110%; font-weight: bold;">Wniosek J53</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 J54</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;J12) 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 J32, twierdzeń J50 i&nbsp;J52, uwagi J51 i&nbsp;wniosku J53 otrzymujemy
 +
 +
 +
 +
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J55</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 \mid m</math>, &nbsp;to&nbsp; <math>8 \mid ( a - 1 )</math>
 +
|-style=height:2.5em
 +
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli&nbsp; <math>8 \nmid m</math>, &nbsp;ale&nbsp; <math>4 \mid m</math>, &nbsp;to&nbsp; <math>4 \mid ( a - 1 )</math>
 +
|}
  
== Zestawienie funkcji ==
 
  
<span style="font-size: 110%; font-weight: bold;">Uwaga P20</span><br/>
 
Poniżej przedstawiamy zestawienie najważniejszych funkcji, które wykorzystywaliśmy do testowania pierwszości liczb. Zauważmy, że wprowadziliśmy drugi parametr do funkcji, które wywołują funkcję <code>MethodA()</code> tak, aby możliwe było pełne wykorzystanie tej funkcji po zmodyfikowaniu i&nbsp;związane z&nbsp;tym poprawki.
 
  
<span style="font-size: 90%; color:black;">\\ potęgowanie modulo
+
<span style="font-size: 110%; font-weight: bold;">Twierdzenie J56</span><br/>
modPower(a, n, m) =  
+
Niech <math>m \in \mathbb{Z}_+</math> i <math>\gcd (a, m) = 1</math>. Kongruencja
\\ a - podstawa, n - wykładnik, m - moduł
+
 
{
+
::<math>x^2 \equiv a \pmod{m}</math>
'''local'''(w);
+
 
'''if'''( m == 1, '''return'''(0) );
+
nie ma rozwiązania wtedy i&nbsp;tylko wtedy, gdy spełniony jest co najmniej jeden z&nbsp;warunków
a = a % m;
+
 
w = 1;
+
::{| border="0"
'''while'''( n > 0,
+
|-style=height:1em
        '''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
+
| &#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>
        a = (a*a) % m; \\ wyliczamy nową podstawę modulo m
+
|-style=height:1em
        n = n/2; \\ dla nowej podstawy wykładnik jest dwa razy mniejszy
+
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli&nbsp; <math>8 \mid m</math> &nbsp;i&nbsp; <math>8 \nmid ( a - 1 )</math>
      );
+
|-style=height:2.5em
  '''return'''(w);
+
| &#9679;&nbsp;&nbsp;&nbsp; jeżeli&nbsp; <math>8 \nmid m</math>, &nbsp;ale&nbsp; <math>4 \mid m</math> &nbsp;i&nbsp; <math>4 \nmid ( a - 1 )</math>
}</span>
+
|}
 +
 
 +
{{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 \mid 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 J55.<br/>
 +
&#9633;
 +
{{\Spoiler}}
 +
 
 +
 
 +
 
 +
<span style="font-size: 110%; font-weight: bold;">Przykład J57</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>
 +
|-
 +
| <math>x^2 \equiv 17 \pmod{8 \cdot 19}</math> || <math>13, 25, 51, 63, 89, 101, 127, 139</math>
 +
|-
 +
| <math>x^2 \equiv 5 \;\, \pmod{8 \cdot 19}</math> || <math>\text{brak}</math>
 +
|-
 +
| <math>x^2 \equiv 5 \;\, \pmod{4 \cdot 19}</math> || <math>9, 29, 47, 67</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 J58</span><br/>
 +
Rozwiązać kongruencję, gdzie <math>p</math> jest liczbą pierwszą nieparzystą
 +
 
 +
::<math>x^2 + rx + s \equiv 0 \pmod{p}</math>
  
 +
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
 +
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>
  
<span style="font-size: 90%; color:black;">\\ test Millera-Rabina
+
::<math>(2 x + r)^2 - r^2 + 4 s \equiv 0 \pmod{p}</math>
isPrimeOr<span style="background-color: #fee481;">SPSP</span>(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);
 
}</span>
 
  
 +
::<math>(2 x + r)^2 \equiv r^2 - 4 s \pmod{p}</math>
  
 +
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
  
<span style="font-size: 90%; color:black;">\\ obliczanie symbolu Jacobiego
+
::<math>(2 x + r)^2 \equiv b^2 \pmod{p}</math>
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>
 
  
 +
::<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>
  
<span style="font-size: 90%; color:black;">\\ obliczanie wyrazów ciągu Lucasa modulo m
+
Jeśli <math>r^2 - 4 s</math> nie jest liczbą kwadratową modulo <math>p</math>, to kongruencja
modLucas(n, P, Q, m) =
 
{
 
'''local'''(A, i, s, U, U2, V, W, W2);
 
'''if'''( m == 1, '''return'''([0, 0]) );
 
'''if'''( n == 0, '''return'''([0, 2 % m]) );
 
A = '''digits'''(n, 2); \\ otrzymujemy wektor cyfr liczby n w układzie dwójkowym
 
s = '''length'''(A); \\ długość wektora A
 
U = 1;
 
W = P;
 
i = 1;
 
'''while'''( i++ <= s,
 
        '''if'''( A[i] == 0,  U2 = 2*U*W - P*U^2;  W2 = W^2 - Q*U^2 );
 
        '''if'''( A[i] == 1,  U2 = W^2 - Q*U^2;  W2 = P*W^2 - 2*Q*U*W );
 
        U = U2 % m;
 
        W = W2 % m;
 
      );
 
V = (2*W - P*U) % m;
 
'''return'''([U, V]);
 
}</span>
 
  
 +
::<math>(2 x + r)^2 \equiv r^2 - 4 s \pmod{p}</math>
  
 +
nie ma rozwiązania. Wynika stąd, że równoważna jej kongruencja
  
<span style="font-size: 90%; color:black;">\\ zmodyfikowana metoda Selfridge'a wyboru parametrów P i Q
+
::<math>x^2 + rx + s \equiv 0 \pmod{p}</math>
MethodA(m, start = "*") =
 
{
 
\\ parametr start (poza "*") musi być wyrazem ciągu a_k = (-1)^k * (2*k+1) dla k >= 2
 
'''local'''(a, js, Q);
 
'''if'''( m%2 == 0, '''return'''("Error") );
 
'''if'''( m == 1, '''return'''([0, 0]) ); \\ 1 nie jest liczbą pierwszą
 
a = '''if'''( start == "*", 5, start );
 
'''if'''( a%4 <> 1, '''return'''("Error") );
 
a = -a + 2*'''sign'''(a); \\ poprzedni wyraz ciągu (a_k)
 
'''while'''( 1,
 
        a = -a - 2*'''sign'''(a); \\ następny wyraz ciągu (a_k)
 
        js = jacobi(a, m);
 
        '''if'''( js == 1, '''next'''() );
 
        '''if'''( js == 0, '''if'''( (a % m) <> 0, '''return'''([0, 0]), '''next'''() ) );
 
        '''if'''( js == -1, Q = (1 - a)/4 );
 
        '''if'''( start == "*" && Q == -1, '''return'''([5, 5]) );
 
        '''if'''( '''gcd'''(Q, m) == 1, '''return'''([1, Q]) );
 
        '''if'''( Q % m <> 0, '''return'''([0, 0]) ); \\ gcd(Q, m) > 1
 
      );
 
}</span>
 
  
 +
również nie ma rozwiązania.<br/>
 +
&#9633;
 +
{{\Spoiler}}
  
  
<span style="font-size: 90%; color:black;">\\ test Lucasa
 
LucasTest(m, start = "*") =
 
{
 
'''local'''(P, Q, X);
 
'''if'''( m % 2 == 0, '''return'''(m == 2) );
 
'''if'''( '''issquare'''(m), '''return'''(0) ); \\ sprawdzamy, czy m nie jest liczbą kwadratową
 
X = MethodA(m, start);
 
P = X[1];
 
Q = X[2];
 
'''if'''( P == 0, '''return'''(0) ); \\ jeżeli P = 0, to m jest liczbą złożoną
 
'''if'''( modLucas(m + 1, P, Q, m)[1] == 0, '''return'''(1), '''return'''(0) );
 
}</span>
 
  
 +
<span style="font-size: 110%; font-weight: bold;">Zadanie J59</span><br/>
 +
Rozwiązać kongruencję
  
 +
::<math>5 x^2 + 6 x + 8 \equiv 0 \pmod{19}</math>
  
<span style="font-size: 90%; color:black;">\\ silny test Lucasa
+
{{Spoiler|Style = font-style: italic; font-weight: bold; color: olive; text-decoration: underline;|Show=Rozwiązanie|Hide=Ukryj rozwiązanie}}
StrongLucasTest(m, start = "*") =
+
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
{
 
'''local'''(a, b, c, k, P, Q, r, w, X);
 
'''if'''( m%2 == 0, '''return'''(m == 2) );
 
'''if'''( '''issquare'''(m), '''return'''(0) ); \\ sprawdzamy, czy liczba m nie jest kwadratowa
 
X = MethodA(m, start);
 
P = X[1];
 
Q = X[2];
 
'''if'''( P == 0, '''return'''(0) ); \\ jeżeli P = 0, to m jest liczbą złożoną
 
r = '''valuation'''(m + 1, 2); \\ znajdujemy wykładnik, z jakim liczba 2 występuje w m + 1
 
w = (m + 1) / 2^r;
 
X =  modLucas(w, P, Q, m);
 
a = X[1]; \\ U_w(P, Q) % m
 
b = X[2]; \\ V_w(P, Q) % m
 
'''if'''( a == 0 || b == 0, '''return'''(1) ); \\ b == 0 to przypadek k == 0
 
'''if'''( r == 1, '''return'''(0) ); \\ nie ma dalszych przypadków
 
c = modPower(Q, w, m); \\ Q^w % m
 
k = 0;
 
\\ sprawdzamy warunek V_(2^k * w) %m = 0; korzystamy ze wzoru V_(2*w) = (V_w)^2 - 2*Q^w
 
'''while'''( k++ < r,
 
        b = (b^2 - 2*c) % m;
 
        '''if'''( b == 0, '''return'''(1) );
 
        c = c^2 % m;
 
      );
 
'''return'''(0);
 
}</span>
 
  
 +
::<math>x^2 + 24 x + 32 \equiv 0 \pmod{19}</math>
  
 +
::<math>x^2 + 24 x + 13 \equiv 0 \pmod{19}</math>
  
<span style="font-size: 90%; color:black;">\\ test BPSW
+
Celowo zostawiliśmy parzysty współczynnik przy <math>x</math>. Gdyby był nieparzysty, to zawsze możemy dodać do niego nieparzysty moduł.
BPSWtest(m, start = "*") =
 
{
 
'''forprime'''(p = 2, 1000, '''if'''( m % p > 0, '''next'''() ); '''if'''( m == p, '''return'''(1), '''return'''(0) ));
 
'''if'''( !isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 2), '''return'''(0) );
 
'''if'''( !StrongLucasTest(m, start), '''return'''(0), '''return'''(1) );
 
}</span>
 
  
 +
::<math>(x + 12)^2 - 144 + 13 \equiv 0 \pmod{19}</math>
  
 +
::<math>(x + 12)^2 + 2 \equiv 0 \pmod{19}</math>
  
<span style="font-size: 90%; color:black;">\\ test Dicksona2
+
::<math>(x + 12)^2 \equiv - 2 \pmod{19}</math>
Dickson2Test(m, start = "*") =
 
{
 
'''local'''(P, Q, X);
 
'''if'''( m%2 == 0, '''return'''(m == 2) );
 
'''if'''( '''issquare'''(m), '''return'''(0) ); \\ sprawdzamy, czy m nie jest liczbą kwadratową
 
X = MethodA(m, start);
 
P = X[1];
 
Q = X[2];
 
'''if'''( P == 0, '''return'''(0) ); \\ jeżeli P = 0, to m jest liczbą złożoną
 
'''if'''( modLucas(m + 1, P, Q, m)[2] == (2*Q) % m, '''return'''(1), '''return'''(0) );
 
}</span>
 
  
 +
::<math>(x + 12)^2 \equiv 6^2 \pmod{19}</math>
  
 +
::<math>x + 12 \equiv \pm 6 \pmod{19}</math>
  
<span style="font-size: 90%; color:black;">\\ silny test Lucasa i test Dicksona2
+
Otrzymujemy: <math>x \equiv 1 \!\! \pmod{19}</math> lub <math>x \equiv 13 \!\! \pmod{19}</math>.
StrongLucasAndDickson2Test(m, start = "*") =
 
{
 
'''local'''(a, b, c, k, P, Q, r, SLT, w, X);
 
'''if'''( m%2 == 0, '''return'''(m == 2) );
 
'''if'''( '''issquare'''(m), '''return'''(0) ); \\ sprawdzamy, czy liczba m nie jest kwadratowa
 
X = MethodA(m, start);
 
P = X[1];
 
Q = X[2];
 
'''if'''( P == 0, '''return'''(0) ); \\ jeżeli P = 0, to m jest liczbą złożoną
 
r = '''valuation'''(m + 1, 2); \\ znajdujemy wykładnik, z jakim liczba 2 występuje w m + 1
 
w = (m + 1) / 2^r;
 
X =  modLucas(w, P, Q, m);
 
a = X[1]; \\ U_w(P, Q) % m
 
b = X[2]; \\ V_w(P, Q) % m
 
SLT = 0;
 
'''if'''( a == 0 || b == 0, SLT = 1 ); \\ b == 0 to przypadek k == 0
 
c = modPower(Q, w, m); \\ Q^w % m
 
k = 0;
 
\\ sprawdzamy warunek V_(2^k * w) %m = 0; korzystamy ze wzoru V_(2*w) = (V_w)^2 - 2*Q^w
 
'''while'''( k++ < r,
 
        b = (b^2 - 2*c) % m;
 
        '''if'''( SLT == 0  &&  b == 0, SLT = 1 );
 
        c = c^2 % m;
 
      );
 
'''if'''( SLT == 0, '''return'''(0) ); \\ liczba m nie przeszła silnego testu Lucasa
 
b = (b^2 - 2*c) % m; \\ V_(m+1)(P, Q) % m
 
'''if'''( b == (2*Q) % m, '''return'''(1), '''return'''(0) );
 
}</span>
 
  
  
 +
Nieco spostrzegawczości pozwala znaleźć rozwiązanie kongruencji natychmiast. W&nbsp;naszym przypadku wystarczyło zauważyć, że
  
<span style="font-size: 90%; color:black;">\\ test BPSW2
+
::<math>x^2 + 24 x + 13 \equiv x^2 - 14 x + 13 \equiv (x - 1) (x - 13) \equiv 0 \pmod{19}</math><br/>
BPSW2test(m, start = "*") =
+
&#9633;
{
+
{{\Spoiler}}
'''forprime'''(p = 2, 1000, '''if'''( m % p > 0, '''next'''() ); '''if'''( m == p, '''return'''(1), '''return'''(0) ));
 
'''if'''( !isPrimeOr<span style="background-color: #fee481;">SPSP</span>(m, 2), '''return'''(0) );
 
'''if'''( !StrongLucasAndDickson2Test(m, start), '''return'''(0), '''return'''(1) );
 
}</span>
 
  
  
Linia 1276: Linia 1791:
 
<references>
 
<references>
  
<ref name="D2PSP1">Zobacz prace: Andrzej Rotkiewicz, ''Lucas pseudoprimes'', (2000) oraz ''Lucas and Frobenius pseudoprimes'', (2003) i&nbsp;Lawrence Somer, ''Lucas sequences <math>\{U_k\}</math> for which <math>U_{2 p}</math> and <math>U_{p}</math> are pseudoprimes for almost all primes <math>p</math>'', (2006)</ref>
+
<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="D2PSP2">Baillie, Fiori i&nbsp;Wagstaff w&nbsp;pracy ''Strengthening the Baillie-PSW primality test'' nazywają te liczby liczbami pseudopierwszymi Lucasa-V (w skrócie: vpsp(<math>P, Q</math>)) (ang. ''Lucas-V pseudoprime'').</ref>
+
<ref name="CRT2">CRT to często używany skrót od angielskiej nazwy twierdzenia: ''Chinese remainder theorem''</ref>
  
<ref name="D2PSP3">ang. ''Dickson pseudoprime of the second kind with parameters <math>P</math> and <math>Q</math>''</ref>
+
<ref name="logic1">Wikipedia, ''Logical equivalence'', ([https://en.wikipedia.org/wiki/Logical_equivalence Wiki-en])</ref>
  
<ref name="BaillieWagstaff1">Robert Baillie and Samuel S. Wagstaff Jr., ''Lucas Pseudoprimes'', Mathematics of Computation Vol. 35, No. 152 (1980), ([http://mpqs.free.fr/LucasPseudoprimes.pdf LINK])</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="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>
 +
 
 +
</references>
  
<ref name="BaillieFioriWagstaff1">Robert Baillie, Andrew Fiori and Samuel S. Wagstaff, Jr., ''Strengthening the Baillie-PSW primality test'', Mathematics of Computation, 90 (2021)</ref>
 
  
<ref name="Jacobsen1">Dana Jacobsen, ''Pseudoprime Statistics, Tables, and Data'', ([http://ntheory.org/pseudoprimes.html LINK])</ref>
 
  
</references>
 
  
  

Aktualna wersja na dzień 18:39, 21 mar 2024

22.03.2023



Chińskie twierdzenie o resztach

Twierdzenie J1
Niech [math]\displaystyle{ a, u \in \mathbb{Z} }[/math] i [math]\displaystyle{ m, n \in \mathbb{Z}_+ }[/math] i [math]\displaystyle{ \gcd (m, n) = 1 }[/math]. Kongruencja

[math]\displaystyle{ u \equiv a \pmod{m n} }[/math]

jest równoważna układowi kongruencji

[math]\displaystyle{ \begin{align} u &\equiv a \pmod{m} \\ u &\equiv a \pmod{n} \\ \end{align} }[/math]
Dowód

[math]\displaystyle{ \Large{\Longrightarrow} }[/math]

Jeżeli liczba [math]\displaystyle{ u - a }[/math] jest podzielna przez iloczyn [math]\displaystyle{ m n }[/math], to tym bardziej jest podzielna przez dowolny czynnik tego iloczynu, skąd wynika natychmiast wypisany układ kongruencji.

[math]\displaystyle{ \Large{\Longleftarrow} }[/math]

Z kongruencji

[math]\displaystyle{ u \equiv a \pmod{m} }[/math]

wynika, że [math]\displaystyle{ u - a = k m }[/math], zaś z kongruencji

[math]\displaystyle{ u \equiv a \pmod{n} }[/math]

otrzymujemy [math]\displaystyle{ n \mid (u - a) }[/math], czyli [math]\displaystyle{ n \mid k m }[/math]. Ponieważ [math]\displaystyle{ \gcd (m, n) = 1 }[/math], zatem [math]\displaystyle{ n \mid k }[/math] (zobacz C74) i istnieje taka liczba całkowita [math]\displaystyle{ s }[/math], że [math]\displaystyle{ k = s n }[/math], czyli [math]\displaystyle{ u - a = s n m }[/math], a stąd [math]\displaystyle{ u \equiv a \!\! \pmod{m n} }[/math]. Co kończy dowód.


Twierdzenie J2
Dla dowolnych liczb [math]\displaystyle{ a, b \in \mathbb{Z} }[/math] i względnie pierwszych liczb [math]\displaystyle{ m, n \in \mathbb{Z}_+ }[/math] istnieje dokładnie jedna taka liczba [math]\displaystyle{ c }[/math] (określona modulo [math]\displaystyle{ m n }[/math]), że prawdziwy jest układ kongruencji

[math]\displaystyle{ \begin{align} c & \equiv a \pmod{m} \\ c & \equiv b \pmod{n} \\ \end{align} }[/math]
Dowód

Z założenia liczby [math]\displaystyle{ m }[/math] i [math]\displaystyle{ n }[/math] są względnie pierwsze, zatem na mocy lematu Bézouta (C.71) istnieją takie liczby [math]\displaystyle{ x, y \in \mathbb{Z} }[/math], że

[math]\displaystyle{ m x + n y = 1 }[/math]

Niech [math]\displaystyle{ c = a n y + b m x }[/math]. Modulo [math]\displaystyle{ m }[/math] dostajemy

[math]\displaystyle{ c \equiv a n y \pmod{m} }[/math]
[math]\displaystyle{ c \equiv a (1 - m x) \pmod{m} }[/math]
[math]\displaystyle{ c \equiv a \pmod{m} }[/math]

Natomiast modulo [math]\displaystyle{ n }[/math] mamy

[math]\displaystyle{ c \equiv b m x \pmod{n} }[/math]
[math]\displaystyle{ c \equiv b (1 - n y) \pmod{n} }[/math]
[math]\displaystyle{ c \equiv b \pmod{n} }[/math]

Pokazaliśmy tym samym istnienie szukanej liczby [math]\displaystyle{ c }[/math]. Przypuśćmy, że istnieją dwie takie liczby [math]\displaystyle{ c \; }[/math] i [math]\displaystyle{ \; d }[/math]. Z założenia [math]\displaystyle{ m \mid (d - a) \; }[/math] i [math]\displaystyle{ \; m \mid (c - a) }[/math], zatem [math]\displaystyle{ m }[/math] dzieli różnicę tych liczb, czyli [math]\displaystyle{ m \mid (d - c) }[/math]. Podobnie pokazujemy, że [math]\displaystyle{ n \mid (d - c) }[/math]. Ponieważ liczby [math]\displaystyle{ m \; }[/math] i [math]\displaystyle{ \; n }[/math] są względnie pierwsze, to [math]\displaystyle{ m n \mid (d - c) }[/math] (zobacz C75), co oznacza, że

[math]\displaystyle{ d \equiv c \pmod{m n} }[/math].

Czyli możemy powiedzieć, że wybrana przez nas liczba [math]\displaystyle{ c }[/math] jest określona modulo [math]\displaystyle{ m n }[/math] i tak rozumiana jest dokładnie jedna. W szczególności istnieje tylko jedna liczba [math]\displaystyle{ c }[/math] taka, że [math]\displaystyle{ 1 \leqslant c \leqslant m n }[/math].


Twierdzenie J3 (chińskie twierdzenie o resztach)
Niech [math]\displaystyle{ a, b, c, u \in \mathbb{Z} }[/math] i [math]\displaystyle{ m, n \in \mathbb{Z}_+ }[/math] oraz niech [math]\displaystyle{ \gcd (m, n) = 1 }[/math]. Istnieje dokładnie jedna liczba [math]\displaystyle{ c }[/math] (określona modulo [math]\displaystyle{ m n }[/math]) taka, że kongruencja

[math]\displaystyle{ u \equiv c \pmod{m n} }[/math]

jest równoważna układowi kongruencji

[math]\displaystyle{ \begin{align} u & \equiv a \pmod{m} \\ u & \equiv b \pmod{n} \\ \end{align} }[/math]
Dowód

Z twierdzenia J2 wiemy, że istnieje dokładnie jedna liczba [math]\displaystyle{ c }[/math] (określona modulo [math]\displaystyle{ m n }[/math]) taka, że prawdziwy jest układ kongruencji

[math]\displaystyle{ \begin{align} c & \equiv a \pmod{m} \\ c & \equiv b \pmod{n} \\ \end{align} }[/math]

Korzystając z tego rezultatu i twierdzenia J1, otrzymujemy

[math]\displaystyle{ 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ć.


Uwaga J4
Chińskie twierdzenie o resztach[1] (CRT[2]) pozostaje prawdziwe w przypadku układu skończonej liczby kongruencji. Założenie, że moduły [math]\displaystyle{ m }[/math] i [math]\displaystyle{ n }[/math] są względnie pierwsze, jest istotne. Przykładowo układ kongruencji

[math]\displaystyle{ \begin{align} u &\equiv 1 \pmod{4} \\ u &\equiv 3 \pmod{8} \\ \end{align} }[/math]

nie może być zapisany w 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]\displaystyle{ u = 4 k + 1 }[/math], które dla liczb [math]\displaystyle{ k }[/math] parzystych i nieparzystych ma postać

[math]\displaystyle{ u = 8 j + 1, \qquad u = 8 j + 5 }[/math]

i nie może być [math]\displaystyle{ u \equiv 3 \!\! \pmod{8} }[/math].


Zadanie J5
Niech [math]\displaystyle{ u, a_1, \ldots, a_k \in \mathbb{Z} }[/math] i [math]\displaystyle{ m_1, \ldots, m_k \in \mathbb{Z}_+ }[/math]. Pokazać, że jeżeli liczby [math]\displaystyle{ m_1, \ldots, m_k }[/math] są parami względnie pierwsze (czyli [math]\displaystyle{ \gcd (m_i, m_j) = 1 }[/math] dla [math]\displaystyle{ i \neq j }[/math]), to istnieje dokładnie jedna liczba [math]\displaystyle{ c }[/math] (określona modulo [math]\displaystyle{ m_1 \cdot \ldots \cdot m_k }[/math]) taka, że układ kongruencji

[math]\displaystyle{ \begin{align} u & \equiv a_1 \pmod{m_1} \\ & \cdots \\ u & \equiv a_k \pmod{m_k} \\ \end{align} }[/math]

można zapisać w sposób równoważny w postaci kongruencji

[math]\displaystyle{ u \equiv c \;\; \pmod{m_1 \cdot \ldots \cdot m_k} }[/math]
Rozwiązanie

Indukcja matematyczna. Twierdzenie jest prawdziwe dla liczby [math]\displaystyle{ k = 2 }[/math] (zobacz J3). Zakładając prawdziwość twierdzenia dla liczby naturalnej [math]\displaystyle{ k \geqslant 2 }[/math], dla liczby [math]\displaystyle{ k + 1 }[/math] otrzymujemy układ kongruencji

[math]\displaystyle{ \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 założenia indukcyjnego. Z twierdzenia J3 wynika, że układ ten można zapisać w sposób równoważny w postaci kongruencji

[math]\displaystyle{ u \equiv c' \pmod{m_1 \cdot \ldots \cdot m_k m_{k + 1}} }[/math]

gdzie liczba [math]\displaystyle{ c' }[/math] jest dokładnie jedna i jest określona modulo [math]\displaystyle{ m_1 \cdot \ldots \cdot m_k m_{k + 1} }[/math]. Zatem twierdzenie jest prawdziwe dla [math]\displaystyle{ k + 1 }[/math]. Co kończy dowód indukcyjny.


Przykład J6
Dysponujemy pewną ilością kulek. Grupując je po [math]\displaystyle{ 5 }[/math], zostają nam [math]\displaystyle{ 3 }[/math], a kiedy próbujemy ustawić je po [math]\displaystyle{ 7 }[/math], zostają nam [math]\displaystyle{ 4 }[/math]. Jaka najmniejsza ilość kulek spełnia te warunki? Rozważmy układ kongruencji

[math]\displaystyle{ \begin{align} n &\equiv 3 \pmod{5} \\ n &\equiv 4 \pmod{7} \\ \end{align} }[/math]

Z chińskiego twierdzenia o resztach wiemy, że powyższy układ możemy zapisać w postaci równoważnej kongruencji modulo [math]\displaystyle{ 35 }[/math]. Jeśli chcemy zaoszczędzić sobie trudu, to wystarczy skorzystać z PARI/GP. Wpisując proste polecenie

chinese( Mod(3,5), Mod(4,7) )

uzyskujemy wynik Mod(18, 35), zatem równoważna kongruencja ma postać

[math]\displaystyle{ n \equiv 18 \pmod{35} }[/math]

Jest to zarazem odpowiedź na postawione pytanie: najmniejsza liczba kulek wynosi [math]\displaystyle{ 18 }[/math].

Gdybyśmy chcieli rozważać bardziej rozbudowany układ kongruencji, przykładowo

[math]\displaystyle{ \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 postaci wektora

chinese( [Mod(1,2), Mod(2,3), Mod(3,5), Mod(4,7), Mod(5,11)] )

Otrzymujemy Mod(1523, 2310).



Wielomiany

Twierdzenie J7
Niech [math]\displaystyle{ n \in \mathbb{Z}_+ }[/math]. Dla dowolnych liczb całkowitych [math]\displaystyle{ x, s }[/math] prawdziwy jest wzór

[math]\displaystyle{ x^n = s^n + (x - s) \cdot R_{n - 1} (x) }[/math]

gdzie [math]\displaystyle{ R_{n - 1} (x) }[/math] jest pewnym wielomianem całkowitym stopnia [math]\displaystyle{ n - 1 }[/math].

Dowód

Indukcja matematyczna. Dla [math]\displaystyle{ n = 1, 2, 3 }[/math] mamy

[math]\displaystyle{ x = s + (x - s) \cdot 1 }[/math]
[math]\displaystyle{ x^2 = s^2 + (x - s) (x + s) }[/math]
[math]\displaystyle{ x^3 = s^3 + (x - s) (x^2 + x s + s^2) }[/math]

Zakładając, że twierdzenie jest prawdziwe dla liczb całkowitych dodatnich należących do przedziału [math]\displaystyle{ [1, n] }[/math] otrzymujemy dla [math]\displaystyle{ n + 1 }[/math]

[math]\displaystyle{ x^{n + 1} = x \cdot x^n }[/math]
[math]\displaystyle{ \;\;\; = x \cdot [s^n + (x - s) \cdot R_{n - 1} (x)] }[/math]
[math]\displaystyle{ \;\;\; = x s^n + x (x - s) R_{n - 1} (x) }[/math]
[math]\displaystyle{ \;\;\; = [s + (x - s)] s^n + x (x - s) R_{n - 1} (x) }[/math]
[math]\displaystyle{ \;\;\; = s^{n + 1} + (x - s) s^n + x (x - s) R_{n - 1} (x) }[/math]
[math]\displaystyle{ \;\;\; = s^{n + 1} + (x - s) [s^n + x R_{n - 1} (x)] }[/math]
[math]\displaystyle{ \;\;\; = s^{n + 1} + (x - s) R_n (x) }[/math]

gdzie oznaczyliśmy [math]\displaystyle{ R_n (x) = s^n + x R_{n - 1} (x) }[/math]. Na mocy zasady indukcji matematycznej twierdzenie jest prawdziwe dla wszystkich liczb całkowitych dodatnich.


Twierdzenie J8
Niech [math]\displaystyle{ W_n (x) }[/math] będzie dowolnym wielomianem stopnia [math]\displaystyle{ n \geqslant 1 }[/math]. Wielomian [math]\displaystyle{ W_n (x) }[/math] można przedstawić w postaci

[math]\displaystyle{ W_n (x) = W_n (s) + (x - s) V_{n - 1} (x) }[/math]

gdzie [math]\displaystyle{ V_{n - 1} (x) }[/math] jest wielomianem stopnia [math]\displaystyle{ n - 1 }[/math], a współczynniki wiodące wielomianów [math]\displaystyle{ W_n (x) }[/math] i [math]\displaystyle{ V_{n - 1} (x) }[/math] są sobie równe.

Dowód

Z założenia [math]\displaystyle{ W_n (x) = \sum_{k = 0}^{n} a_k x^k }[/math], gdzie [math]\displaystyle{ a_n \neq 0 }[/math]. Korzystając z twierdzenia J7, dostajemy

[math]\displaystyle{ W_n (x) - W_n (s) = \sum_{k = 0}^{n} a_k x^k - \sum_{k = 0}^{n} a_k s^k }[/math]
[math]\displaystyle{ \quad \,\, = \sum_{k = 1}^{n} a_k (x^k - s^k) }[/math]
[math]\displaystyle{ \quad \,\, = \sum_{k = 1}^{n} a_k (x - s) R_{k - 1} (x) }[/math]
[math]\displaystyle{ \quad \,\, = (x - s) \cdot \sum_{k = 1}^{n} a_k R_{k - 1} (x) }[/math]
[math]\displaystyle{ \quad \,\, = (x - s) \cdot V_{n - 1} (x) }[/math]

gdzie oznaczyliśmy [math]\displaystyle{ V_{n - 1} (x) = \sum_{k = 1}^{n} a_k R_{k - 1} (x) }[/math]. Ponieważ wielomian [math]\displaystyle{ a_n R_{n - 1} (x) }[/math] ma najwyższy stopnień równy [math]\displaystyle{ n - 1 }[/math], to stopień wielomianu [math]\displaystyle{ V_{n - 1} (x) }[/math] jest równy [math]\displaystyle{ n - 1 }[/math].

Niech [math]\displaystyle{ V_{n - 1} (x) = \sum_{k = 0}^{n - 1} b_k x^k }[/math]. Mamy

[math]\displaystyle{ \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 najwyższym stopniu, łatwo zauważamy, że [math]\displaystyle{ a_n = b_{n - 1} }[/math]. Czyli współczynnik wiodący wielomianu [math]\displaystyle{ V_{n - 1} (x) }[/math] jest równy [math]\displaystyle{ a_n }[/math]. Co należało pokazać.


Definicja J9
Wielomian [math]\displaystyle{ W_n (x) = \sum_{k = 0}^{n} a_k x^k }[/math], gdzie [math]\displaystyle{ a_0, \ldots, a_n \in \mathbb{Z} }[/math] oraz [math]\displaystyle{ a_n \neq 0 }[/math], będziemy nazywali wielomianem całkowitym stopnia [math]\displaystyle{ n }[/math].


Definicja J10
Powiemy, że wielomian całkowity [math]\displaystyle{ W_n (x) = \sum_{k = 0}^{n} a_k x^k }[/math] jest stopnia [math]\displaystyle{ n }[/math] modulo [math]\displaystyle{ p }[/math], gdzie [math]\displaystyle{ p }[/math] jest liczbą pierwszą, jeżeli [math]\displaystyle{ p \nmid a_n }[/math]. Jeżeli każdy współczynnik [math]\displaystyle{ a_k }[/math], gdzie [math]\displaystyle{ k = 0, 1, \ldots, n }[/math], jest podzielny przez [math]\displaystyle{ p }[/math], to stopień wielomianu [math]\displaystyle{ W_n (x) }[/math] modulo [math]\displaystyle{ p }[/math] jest nieokreślony.


Twierdzenie J11
Niech [math]\displaystyle{ W_n (x) = \sum_{k = 0}^{n} a_k x^k }[/math] będzie wielomianem całkowitym i [math]\displaystyle{ m \in \mathbb{Z}_+ }[/math]. Jeżeli prawdziwa jest kongruencja [math]\displaystyle{ x \equiv y \!\! \pmod{m} }[/math], to

[math]\displaystyle{ W_n (x) \equiv W_n (y) \pmod{m} }[/math]
Dowód

Dla [math]\displaystyle{ k \geqslant 1 }[/math] wyrażenie [math]\displaystyle{ x^k - y^k }[/math] jest podzielne przez [math]\displaystyle{ x - y }[/math], co łatwo pokazać stosując indukcję matematyczną lub zauważając, że

[math]\displaystyle{ x^k - y^k = (x - y) \sum_{j = 1}^{k} x^{k - j} y^{j - 1} }[/math]

Z założenia [math]\displaystyle{ m \mid (x - y) }[/math], zatem dla [math]\displaystyle{ k \geqslant 1 }[/math] mamy [math]\displaystyle{ m \mid (x^k - y^k) }[/math]. Wynika stąd, że prawdziwe są kongruencje

[math]\displaystyle{ \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]\displaystyle{ W_n (x) \equiv W_n (y) \pmod{m} }[/math]

Co należało pokazać.


Uwaga J12
Niech [math]\displaystyle{ W(x) }[/math] będzie wielomianem całkowitym. Rozważmy kongruencję

[math]\displaystyle{ W(x) \equiv 0 \pmod{m n} \qquad \qquad \qquad (1) }[/math]

gdzie liczby [math]\displaystyle{ m }[/math] i [math]\displaystyle{ n }[/math] są względnie pierwsze.

Kongruencja ta jest równoważna układowi kongruencji

[math]\displaystyle{ \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]\displaystyle{ (1) }[/math] możemy sprowadzić do szukania rozwiązań układu kongruencji [math]\displaystyle{ (2) }[/math]. W szczególności wynika stąd, że jeżeli któraś z kongruencji [math]\displaystyle{ (2) }[/math] nie ma rozwiązania, to kongruencja [math]\displaystyle{ W(x) \equiv 0 \!\! \pmod{m n} }[/math] również nie ma rozwiązania.

Załóżmy, że każda z kongruencji [math]\displaystyle{ (2) }[/math] ma przynajmniej jedno rozwiązanie i niech

  •    [math]\displaystyle{ x \equiv a \!\! \pmod{m} }[/math] będzie pierwiastkiem kongruencji [math]\displaystyle{ W (x) \equiv 0 \!\! \pmod{m} }[/math]
  •    [math]\displaystyle{ x \equiv b \!\! \pmod{n} }[/math] będzie pierwiastkiem kongruencji [math]\displaystyle{ W (x) \equiv 0 \!\! \pmod{n} }[/math]

Pierwiastki te tworzą układ kongruencji

[math]\displaystyle{ \begin{align} x &\equiv a \pmod{m} \\ x &\equiv b \pmod{n} \\ \end{align} \qquad \qquad \qquad \qquad (3) }[/math]

Z chińskiego twierdzenia o resztach wiemy, że układ ten możemy zapisać w postaci równoważnej

[math]\displaystyle{ x \equiv c \pmod{m n} }[/math]

Zauważmy, że liczba [math]\displaystyle{ c }[/math] określona modulo [math]\displaystyle{ m n }[/math] jest rozwiązaniem kongruencji [math]\displaystyle{ (1) }[/math]. Istotnie z twierdzenia J11 mamy

[math]\displaystyle{ \begin{align} W (c) &\equiv W (a) \equiv 0 \pmod{m} \\ W (c) &\equiv W (b) \equiv 0 \pmod{n} \\ \end{align} }[/math]

ale liczby [math]\displaystyle{ m, n }[/math] są względnie pierwsze, zatem otrzymujemy, że

[math]\displaystyle{ W (c) \equiv 0 \pmod{m n} }[/math]

Wynika stąd, że każdemu układowi rozwiązań [math]\displaystyle{ (3) }[/math] odpowiada dokładnie jedno rozwiązanie kongruencji [math]\displaystyle{ (1) }[/math].

Podsumujmy: jeżeli kongruencje

[math]\displaystyle{ \begin{align} W (x) &\equiv 0 \pmod{m} \\ W (x) &\equiv 0 \pmod{n} \\ \end{align} }[/math]

mają odpowiednio [math]\displaystyle{ r }[/math] i [math]\displaystyle{ s }[/math] pierwiastków, to liczba różnych układów kongruencji [math]\displaystyle{ (3) }[/math] jest równa iloczynowi [math]\displaystyle{ r s }[/math] i istnieje [math]\displaystyle{ r s }[/math] różnych rozwiązań kongruencji

[math]\displaystyle{ W(x) \equiv 0 \pmod{m n} }[/math]



Twierdzenie Lagrange'a

Twierdzenie J13
Kongruencja

[math]\displaystyle{ a_1 x + a_0 \equiv 0 \pmod{p} }[/math]

gdzie [math]\displaystyle{ p \nmid a_1 }[/math], ma dokładnie jedno rozwiązanie modulo [math]\displaystyle{ p }[/math].

Dowód

A. Istnienie rozwiązania

Ponieważ rozpatrywaną kongruencję możemy zapisać w postaci [math]\displaystyle{ a_1 x + a_0 = k p }[/math], to istnienie liczb [math]\displaystyle{ x }[/math] i [math]\displaystyle{ k }[/math], dla których ta równość jest prawdziwa, wynika z twierdzenia C76. Poniżej przedstawimy jeszcze jeden sposób znalezienia rozwiązania.

Ponieważ [math]\displaystyle{ \gcd (a_1, p) = 1 }[/math], to istnieją takie liczby [math]\displaystyle{ r, s }[/math], że [math]\displaystyle{ a_1 r + p s = 1 }[/math] (zobacz C73 - lemat Bézouta). Zauważmy, że [math]\displaystyle{ p \nmid r }[/math], bo gdyby tak było, to liczba pierwsza [math]\displaystyle{ p }[/math] dzieliłaby wyrażenie [math]\displaystyle{ a_1 r + p s }[/math], ale jest to niemożliwe, bo [math]\displaystyle{ a_1 r + p s = 1 }[/math]. Czyli modulo [math]\displaystyle{ p }[/math] mamy

[math]\displaystyle{ a_1 r \equiv 1 \pmod{p} }[/math]

Mnożąc rozpatrywaną kongruencję przez [math]\displaystyle{ r }[/math], otrzymujemy

[math]\displaystyle{ a_1 r x + a_0 r \equiv 0 \pmod{p} }[/math]

Zatem

[math]\displaystyle{ x \equiv - a_0 r \pmod{p} }[/math]

B. Brak innych rozwiązań

Przypuśćmy, że istnieją dwa różne rozwiązania kongruencji

[math]\displaystyle{ a_1 x + a_0 \equiv 0 \pmod{p} }[/math]

Jeśli oznaczymy je przez [math]\displaystyle{ x_1 }[/math] i [math]\displaystyle{ x_2 }[/math], to otrzymamy

[math]\displaystyle{ a_1 x_1 + a_0 \equiv 0 \equiv a_1 x_2 + a_0 \pmod{p} }[/math]

Czyli

[math]\displaystyle{ a_1 x_1 \equiv a_1 x_2 \pmod{p} }[/math]
[math]\displaystyle{ p \mid a_1 (x_1 - x_2) }[/math]

Ponieważ [math]\displaystyle{ p \nmid a_1 }[/math], to z lematu Euklidesa (C74) otrzymujemy natychmiast [math]\displaystyle{ p \mid (x_1 - x_2) }[/math]. Skąd wynika, że [math]\displaystyle{ x_1 \equiv x_2 \!\! \pmod{p} }[/math], wbrew założeniu, że [math]\displaystyle{ x_1 }[/math] i [math]\displaystyle{ x_2 }[/math] są dwoma różnymi rozwiązaniami. Co kończy dowód.


Twierdzenie J14 (Joseph Louis Lagrange, 1768)
Jeżeli wielomian [math]\displaystyle{ W_n (x) = \sum_{k = 0}^{n} a_k x^k }[/math] ma stopień [math]\displaystyle{ n }[/math] modulo [math]\displaystyle{ p }[/math], gdzie [math]\displaystyle{ n \geqslant 1 }[/math], to kongruencja

[math]\displaystyle{ W_n (x) \equiv 0 \pmod{p} }[/math]

ma co najwyżej [math]\displaystyle{ n }[/math] rozwiązań.

Dowód

Indukcja matematyczna. Z J13 wiemy, że dowodzone twierdzenie jest prawdziwe dla [math]\displaystyle{ n = 1 }[/math]. Załóżmy, że twierdzenie jest prawdziwe dla wszystkich liczb całkowitych dodatnich nie większych od [math]\displaystyle{ n - 1 }[/math]. Niech wielomian [math]\displaystyle{ W_n (x) }[/math] ma stopień [math]\displaystyle{ n }[/math] modulo [math]\displaystyle{ p }[/math]. Jeżeli kongruencja

[math]\displaystyle{ W_n (x) \equiv 0 \pmod{p} }[/math]

nie ma żadnego rozwiązania, to dowodzone twierdzenie jest prawdziwe dla [math]\displaystyle{ n }[/math]. Przypuśćmy teraz, że wypisana wyżej kongruencja ma przynajmniej jeden pierwiastek [math]\displaystyle{ x \equiv s \!\! \pmod{p} }[/math]. Korzystając z twierdzenia J8, możemy napisać

[math]\displaystyle{ W_n (x) - W_n (s) = (x - s) V_{n - 1} (x) }[/math]

gdzie wielomian [math]\displaystyle{ V_{n - 1} (x) }[/math] ma stopień [math]\displaystyle{ n - 1 }[/math] modulo [math]\displaystyle{ p }[/math], bo wielomiany [math]\displaystyle{ W_n (x) }[/math] oraz [math]\displaystyle{ V_{n - 1} (x) }[/math] mają jednakowe współczynniki wiodące.


Z założenia [math]\displaystyle{ x \equiv s \!\! \pmod{p} }[/math] jest jednym z pierwiastków kongruencji [math]\displaystyle{ W_n (x) \equiv 0 \!\! \pmod{p} }[/math], zatem modulo [math]\displaystyle{ p }[/math] otrzymujemy

[math]\displaystyle{ W_n (x) \equiv (x - s) V_{n - 1} (x) \pmod{p} }[/math]

Ponieważ [math]\displaystyle{ p }[/math] jest liczbą pierwszą, to z rozpatrywanej kongruencji

[math]\displaystyle{ W_n (x) \equiv 0 \pmod{p} }[/math]

wynika, że musi być (zobacz C74)

[math]\displaystyle{ 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]\displaystyle{ V_{n - 1} (x) \pmod{p} }[/math]

ma co najwyżej [math]\displaystyle{ n - 1 }[/math] rozwiązań, zatem kongruencja

[math]\displaystyle{ W_n (x) \equiv 0 \pmod{p} }[/math]

ma nie więcej niż [math]\displaystyle{ n }[/math] rozwiązań. Co należało pokazać.


Twierdzenie J15
Jeżeli kongruencja

[math]\displaystyle{ 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]\displaystyle{ n }[/math] rozwiązań, to wszystkie współczynniki [math]\displaystyle{ a_k }[/math], gdzie [math]\displaystyle{ k = 0, \ldots, n }[/math], muszą być podzielne przez [math]\displaystyle{ p }[/math].

Dowód

Niech [math]\displaystyle{ S \subset \{ 0, 1, \ldots, n \} }[/math] będzie zbiorem takim, że dla każdego [math]\displaystyle{ k \in S }[/math] jest [math]\displaystyle{ p \nmid a_k }[/math]. Przypuśćmy, że [math]\displaystyle{ S }[/math] jest zbiorem niepustym. Niech [math]\displaystyle{ j }[/math] oznacza największy element zbioru [math]\displaystyle{ S }[/math]. Jeżeli [math]\displaystyle{ j = 0 }[/math], to wielomian [math]\displaystyle{ W_n (x) = \sum_{k = 0}^{n} a_k x^k }[/math] jest stopnia [math]\displaystyle{ 0 }[/math] modulo [math]\displaystyle{ p }[/math] i

[math]\displaystyle{ a_0 \not\equiv 0 \pmod{p} }[/math]

Konsekwentnie, dla dowolnego [math]\displaystyle{ x \in \mathbb{Z} }[/math] jest

[math]\displaystyle{ 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]\displaystyle{ 1 \leqslant k \leqslant n }[/math] mamy [math]\displaystyle{ 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]\displaystyle{ n }[/math].

W przypadku gdy [math]\displaystyle{ j \neq 0 }[/math], z twierdzenia Lagrange'a wynika, że rozpatrywana kongruencja ma nie więcej niż [math]\displaystyle{ j \leqslant n }[/math] rozwiązań, ponownie wbrew założeniu, że kongruencja ta ma więcej niż [math]\displaystyle{ n }[/math] rozwiązań. Uczynione przypuszczenie, że [math]\displaystyle{ S }[/math] jest zbiorem niepustym, okazało się fałszywe, zatem zbiór [math]\displaystyle{ S }[/math] musi być zbiorem pustym. Co należało pokazać.


Przykład J16
Z twierdzenia Lagrange'a wynika, że kongruencja

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

ma co najwyżej [math]\displaystyle{ p }[/math] rozwiązań. W rzeczywistości nie ma ani jednego rozwiązania, bo z twierdzenia Fermata wiemy, że dla dowolnej liczby pierwszej [math]\displaystyle{ p }[/math] jest

[math]\displaystyle{ x^p \equiv x \pmod{p} }[/math]


Przykład J17
Zauważmy, że w przypadku, gdy [math]\displaystyle{ n \geqslant p }[/math], możemy zawsze wielomian przekształcić do postaci takiej, że [math]\displaystyle{ n \lt p }[/math]. Niech [math]\displaystyle{ p = 5 }[/math] i

[math]\displaystyle{ W(x) = x^{15} + 11 x^{11} + 5 x^5 + 2 x^2 + x + 1 }[/math]

Ponieważ [math]\displaystyle{ x^5 \equiv x \!\! \pmod{5} }[/math], to

[math]\displaystyle{ 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 faktu, że [math]\displaystyle{ W(x) }[/math] można zapisać w postaci

[math]\displaystyle{ 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]\displaystyle{ x^5 - x \equiv 0 \!\! \pmod{5} }[/math] na mocy twierdzenia Fermata.

W PARI/GP polecenie

Mod(x^15 + 11*x^11 + 5*x^5 + 2*x^2 + x + 1, x^5 - x)

znajduje resztę z dzielenia wielomianu [math]\displaystyle{ x^{15} + 11 x^{11} + 5 x^5 + 2 x^2 + x + 1 }[/math] przez wielomian [math]\displaystyle{ x^5 - x }[/math]. Tutaj otrzymujemy

Mod(12*x^3 + 2*x^2 + 6*x + 1, x^5 - x)



Twierdzenie Wilsona

Twierdzenie J18 (John Wilson, 1770)
Liczba całkowita [math]\displaystyle{ p \geqslant 2 }[/math] jest liczbą pierwszą wtedy i tylko wtedy, gdy

[math]\displaystyle{ (p - 1) ! \equiv - 1 \pmod{p} }[/math]
Dowód

[math]\displaystyle{ \Large{\Longleftarrow} }[/math]

Przypuśćmy, że prawdziwa jest kongruencja [math]\displaystyle{ (p - 1) ! \equiv - 1 \!\! \pmod{p} }[/math] oraz [math]\displaystyle{ p }[/math] jest liczbą złożoną. Zatem liczba [math]\displaystyle{ p }[/math] ma dzielnik [math]\displaystyle{ d }[/math] taki, że [math]\displaystyle{ 2 \leqslant d \leqslant p - 1 }[/math]. Ponieważ [math]\displaystyle{ d \mid p , }[/math] to prawdziwa jest kongruencja

[math]\displaystyle{ (p - 1) ! \equiv - 1 \pmod{d} }[/math]

czyli

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

co jest niemożliwe.

[math]\displaystyle{ \Large{\Longrightarrow} }[/math]

Łatwo sprawdzamy, że twierdzenie jest prawdziwe dla [math]\displaystyle{ p = 2 }[/math]. Niech teraz [math]\displaystyle{ p }[/math] będzie liczbą pierwszą nieparzystą. Rozważmy wielomiany

[math]\displaystyle{ W(x) = (x - 1) (x - 2) \cdot \ldots \cdot (x - (p - 1)) }[/math]

oraz

[math]\displaystyle{ V(x) = x^{p - 1} - 1 }[/math]

Zauważmy, że

  • stopnie tych wielomianów są równe [math]\displaystyle{ p - 1 }[/math]
  • współczynniki wiodące są równe [math]\displaystyle{ 1 }[/math]
  • wyrazy wolne są równe odpowiednio [math]\displaystyle{ (p - 1) ! }[/math] oraz [math]\displaystyle{ - 1 }[/math]
  • wielomiany mają [math]\displaystyle{ p - 1 }[/math] rozwiązań modulo [math]\displaystyle{ p }[/math]

Niech

[math]\displaystyle{ U(x) = W (x) - V (x) }[/math]

Zauważmy, że

  • stopień wielomianu [math]\displaystyle{ U(x) }[/math] jest równy [math]\displaystyle{ p - 2 \geqslant 1 }[/math], ponieważ wyrazy o najwyższym stopniu uległy redukcji
  • wielomian [math]\displaystyle{ U(x) }[/math] ma [math]\displaystyle{ p - 1 }[/math] rozwiązań modulo [math]\displaystyle{ p }[/math], bo dla każdego [math]\displaystyle{ k \in \{ 1, 2, \ldots, p - 1 \} }[/math] mamy [math]\displaystyle{ U(k) = W (k) - V (k) \equiv 0 \!\! \pmod{p} }[/math]

Z twierdzenia Lagrange'a wiemy, że wielomian [math]\displaystyle{ U(x) }[/math] nie może mieć więcej niż [math]\displaystyle{ p - 2 }[/math] rozwiązań modulo [math]\displaystyle{ p }[/math]. Zatem z twierdzenia J15 wynika natychmiast, że liczba pierwsza [math]\displaystyle{ p }[/math] musi dzielić każdy współczynnik [math]\displaystyle{ a_k }[/math] wielomianu [math]\displaystyle{ U(x) }[/math] i w szczególności musi dzielić wyraz wolny, który jest równy [math]\displaystyle{ (p - 1) ! + 1 }[/math]. Co należało pokazać.


Twierdzenie J19
Liczba całkowita nieparzysta [math]\displaystyle{ p \geqslant 3 }[/math] jest liczbą pierwszą wtedy i tylko wtedy, gdy

[math]\displaystyle{ \left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv (- 1)^{\tfrac{p + 1}{2}} \!\! \pmod{p} }[/math]
Dowód

Z twierdzenia Wilsona wiemy, że liczba całkowita [math]\displaystyle{ p \geqslant 2 }[/math] jest liczbą pierwszą wtedy i tylko wtedy, gdy

[math]\displaystyle{ (p - 1) ! \equiv - 1 \pmod{p} }[/math]

W przypadku, gdy liczba [math]\displaystyle{ p }[/math] jest liczbą nieparzystą możemy powyższy wzór łatwo przekształcić. Ponieważ czynniki w [math]\displaystyle{ (p - 1) ! }[/math] są określone modulo [math]\displaystyle{ p }[/math], to odejmując od każdego czynnika większego od [math]\displaystyle{ {\small\frac{p - 1}{2}} }[/math] liczbę [math]\displaystyle{ p }[/math], otrzymujemy

[math]\displaystyle{ 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]\displaystyle{ (- 1)^{\tfrac{p - 1}{2}} \cdot \left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv - 1 \!\! \pmod{p} }[/math]
[math]\displaystyle{ \left[ \left( {\small\frac{p - 1}{2}} \right) ! \right]^2 \equiv (- 1)^{\tfrac{p + 1}{2}} \!\! \pmod{p} }[/math]

Co należało pokazać.


Zadanie J20
Pokazać, że jeżeli [math]\displaystyle{ p }[/math] jest liczbą pierwszą nieparzystą, to [math]\displaystyle{ (p - 2) ! \equiv 1 \!\! \pmod{p} }[/math].

Rozwiązanie

Niech [math]\displaystyle{ S }[/math] będzie zbiorem liczb całkowitych dodatnich mniejszych od [math]\displaystyle{ p }[/math], czyli [math]\displaystyle{ S = \{ 1, 2, \ldots, p - 1 \} }[/math]. Podstawą dowodu jest spostrzeżenie, że tylko dwie liczby należące do [math]\displaystyle{ S }[/math] są swoimi odwrotnościami modulo [math]\displaystyle{ p }[/math]. Pozostałe liczby są wzajemnie swoimi odwrotnościami modulo [math]\displaystyle{ p }[/math].

Jeżeli liczba [math]\displaystyle{ x }[/math] jest swoją odwrotnością modulo [math]\displaystyle{ p }[/math], to musi być

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

Łatwo zauważamy, że istnieją dwa rozwiązania [math]\displaystyle{ x \equiv 1 \!\! \pmod{p} \, }[/math] i [math]\displaystyle{ \, x \equiv - 1 \!\! \pmod{p} , }[/math] a z twierdzenia Lagrange'a (J14) wiemy, że są to wszystkie rozwiązania. Wynika stąd, że w zbiorze [math]\displaystyle{ S }[/math] liczby [math]\displaystyle{ 1 \, }[/math] i [math]\displaystyle{ \, p - 1 }[/math] są swoimi odwrotnościami modulo [math]\displaystyle{ p , }[/math] a pozostałe liczby [math]\displaystyle{ 2, \ldots, p - 2 }[/math] są wzajemnie swoimi odwrotnościami modulo [math]\displaystyle{ p , }[/math] czyli można połączyć je w pary [math]\displaystyle{ a, b }[/math] takie, że [math]\displaystyle{ a \neq b \, }[/math] i [math]\displaystyle{ \, a \cdot b \equiv 1 \!\! \pmod{p} . }[/math] Tworząc iloczyn wszystkich takich par, otrzymujemy

[math]\displaystyle{ (a \cdot b) \cdot (c \cdot d) \cdot \ldots \cdot (x \cdot y) \equiv 1 \!\! \pmod{p} }[/math]

Oczywiście iloczyn po lewej stronie wyczerpuje wszystkie liczby [math]\displaystyle{ 2, 3, \ldots, p - 2 , }[/math] zatem

[math]\displaystyle{ 2 \cdot 3 \cdot \ldots \cdot (p - 2) \equiv 1 \!\! \pmod{p} }[/math]

Co należało pokazać.


Zadanie J21
Pokazać, że jeżeli [math]\displaystyle{ m \geqslant 6 }[/math] jest liczbą złożoną, to [math]\displaystyle{ (m - 1) ! \equiv 0 \!\! \pmod{m} }[/math]

Rozwiązanie

Ponieważ [math]\displaystyle{ m }[/math] jest liczbą złożoną, to możemy zapisać [math]\displaystyle{ m }[/math] w postaci [math]\displaystyle{ m = a b , }[/math] gdzie liczby [math]\displaystyle{ a, b }[/math] spełniają warunek [math]\displaystyle{ 1 \lt a, b \lt m . }[/math] Rozpatrzmy najpierw przypadek kiedy [math]\displaystyle{ a \neq b , }[/math] wtedy w iloczynie [math]\displaystyle{ 1 \cdot 2 \cdot \ldots \cdot (m - 1) }[/math] występują obydwa czynniki [math]\displaystyle{ a \, }[/math] i [math]\displaystyle{ \, b }[/math], zatem [math]\displaystyle{ a b \mid (m - 1) ! }[/math]

Rozważmy teraz przypadek gdy [math]\displaystyle{ m = a^2 }[/math]. Jeśli [math]\displaystyle{ m - 1 \geqslant 2 a , }[/math] to w iloczynie [math]\displaystyle{ 1 \cdot 2 \cdot \ldots \cdot (m - 1) }[/math] pojawi się czynnik [math]\displaystyle{ a }[/math] oraz [math]\displaystyle{ 2 a , }[/math] wobec tego [math]\displaystyle{ a^2 \mid (m - 1) ! }[/math] Ponieważ z warunków [math]\displaystyle{ m = a^2 }[/math] oraz [math]\displaystyle{ m - 1 \geqslant 2 a }[/math] wynika, że [math]\displaystyle{ a \geqslant 3 , }[/math] to jedynie dla [math]\displaystyle{ m = 2^2 = 4 }[/math] twierdzenie nie jest prawdziwe. Co należało pokazać.



Twierdzenie Fermata

Twierdzenie J22 (Pierre de Fermat, 1640)
Niech [math]\displaystyle{ a \in \mathbb{Z} }[/math]. Jeżeli [math]\displaystyle{ p }[/math] jest liczbą pierwszą

  • to liczba [math]\displaystyle{ a^p - a }[/math] jest podzielna przez [math]\displaystyle{ p }[/math], czyli [math]\displaystyle{ a^p \equiv a \!\! \pmod p }[/math]
  • i jeśli dodatkowo [math]\displaystyle{ p \nmid a }[/math], to liczba [math]\displaystyle{ a^{p - 1} - 1 }[/math] jest podzielna przez [math]\displaystyle{ p }[/math], czyli [math]\displaystyle{ a^{p - 1} \equiv 1 \!\! \pmod p }[/math]
Dowód

Punkt 1.

Zauważmy, że
a) twierdzenie jest prawdziwe dla [math]\displaystyle{ a = 0 }[/math]
b) w przypadku, gdy [math]\displaystyle{ p = 2 }[/math] wyrażenie [math]\displaystyle{ a^p - a = a^2 - a = a (a - 1) }[/math] jest podzielne przez [math]\displaystyle{ 2 }[/math], bo jedna z liczb [math]\displaystyle{ a - 1 }[/math] i [math]\displaystyle{ a }[/math] jest liczbą parzystą
c) w przypadku, gdy [math]\displaystyle{ p }[/math] jest liczbą pierwszą nieparzystą i twierdzenie jest prawdziwe dla [math]\displaystyle{ a \geqslant 1 }[/math], to jest też prawdziwe dla [math]\displaystyle{ - a }[/math], bo

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


Zatem wystarczy pokazać, że dla ustalonej liczby pierwszej nieparzystej [math]\displaystyle{ p }[/math] twierdzenie jest prawdziwe dla każdego [math]\displaystyle{ a \in \mathbb{Z}_+ }[/math].

Indukcja matematyczna. Dla [math]\displaystyle{ a = 1 }[/math] mamy [math]\displaystyle{ 1^p - 1 = 0 }[/math] zatem liczba pierwsza [math]\displaystyle{ p }[/math] jest dzielnikiem rozważanego wyrażenia. Zakładając, że twierdzenie jest prawdziwe dla [math]\displaystyle{ a }[/math], czyli [math]\displaystyle{ p \mid a^p - a }[/math], otrzymujmy dla [math]\displaystyle{ a + 1 }[/math]

[math]\displaystyle{ (a + 1)^p - (a + 1) = \sum_{k = 0}^{p} \binom{p}{k} \cdot a^k - a - 1 }[/math]
[math]\displaystyle{ \;\;\,\, = 1 + \sum_{k = 1}^{p - 1} \binom{p}{k} \cdot a^k + a^p - a - 1 }[/math]
[math]\displaystyle{ \;\;\,\, = a^p - a + \sum^{p - 1}_{k = 1} \binom{p}{k} \cdot a^k }[/math]


Z założenia indukcyjnego [math]\displaystyle{ p \mid a^p - a }[/math], zaś [math]\displaystyle{ \binom{p}{k} = {\small\frac{p!}{k! \cdot (p - k) !}} }[/math] dla [math]\displaystyle{ k = 1, 2, \ldots, p - 1 }[/math] jest podzielne przez [math]\displaystyle{ p }[/math] (ponieważ [math]\displaystyle{ p }[/math] dzieli licznik, ale nie dzieli mianownika). Zatem [math]\displaystyle{ (a + 1)^p - (a + 1) }[/math] jest podzielne przez liczbę pierwszą [math]\displaystyle{ p }[/math].

Punkt 2.

Z punktu 1. wiemy, że liczba pierwsza [math]\displaystyle{ p }[/math] dzieli [math]\displaystyle{ a^p - a = a (a^{p - 1} - 1) }[/math]. Jeżeli [math]\displaystyle{ p \nmid a }[/math], to z lematu Euklidesa (zobacz twierdzenie C74) wynika natychmiast, że [math]\displaystyle{ p }[/math] dzieli [math]\displaystyle{ a^{p - 1} - 1 }[/math].


Twierdzenie J23
Niech [math]\displaystyle{ x, y \in \mathbb{Z} }[/math]. Jeżeli [math]\displaystyle{ \gcd (x, y) = 1 }[/math] i liczba pierwsza nieparzysta [math]\displaystyle{ p }[/math] dzieli [math]\displaystyle{ x^2 + y^2 }[/math], to [math]\displaystyle{ p }[/math] jest postaci [math]\displaystyle{ 4 k + 1 }[/math].

Dowód

Z założenia

[math]\displaystyle{ x^2 \equiv - y^2 \!\! \pmod{p} }[/math]

Przypuśćmy, że [math]\displaystyle{ p \mid y }[/math]. Wtedy z powyższej kongruencji mamy natychmiast, że [math]\displaystyle{ p \mid x }[/math], wbrew założeniu, że [math]\displaystyle{ \gcd (x, y) = 1 }[/math]. Zatem [math]\displaystyle{ p \nmid y }[/math] i z twierdzenia Fermata dostajemy

[math]\displaystyle{ 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]\displaystyle{ {\small\frac{p - 1}{2}} }[/math] musi być liczbą parzystą, czyli [math]\displaystyle{ p = 4 k + 1 }[/math]. Co należało pokazać.


Zadanie J24
Niech [math]\displaystyle{ x, y, n \geqslant 0 }[/math]. Pokazać, że jedynymi rozwiązaniami równania

[math]\displaystyle{ x^2 + y^2 = 2^n }[/math]

są liczby

  • [math]\displaystyle{ x = 2^{n / 2} \, }[/math] i [math]\displaystyle{ \, y = 0 \, }[/math] lub [math]\displaystyle{ \, x = 0 \, }[/math] i [math]\displaystyle{ \, y = 2^{n / 2} }[/math], gdy [math]\displaystyle{ 2 \mid n }[/math]
  • [math]\displaystyle{ x = y = 2^{(n - 1) / 2} }[/math], gdy [math]\displaystyle{ 2 \nmid n }[/math]
Rozwiązanie

A. Gdy jedna z liczb [math]\displaystyle{ x, y }[/math] jest równa [math]\displaystyle{ 0 }[/math] (powiedzmy [math]\displaystyle{ y }[/math]), to mamy [math]\displaystyle{ x = 2^{n / 2} }[/math], gdy [math]\displaystyle{ n }[/math] jest parzyste. Gdy [math]\displaystyle{ n }[/math] jest nieparzyste, to rozwiązanie nie istnieje. Od tej pory będziemy zakładali, że [math]\displaystyle{ x, y \geqslant 1 }[/math]

B. Wiemy, że kwadrat liczby nieparzystej przystaje do [math]\displaystyle{ 1 }[/math] modulo [math]\displaystyle{ 4 }[/math]. Gdy obie liczby [math]\displaystyle{ x, y }[/math] są nieparzyste, to modulo [math]\displaystyle{ 4 }[/math] mamy

[math]\displaystyle{ 2 \equiv 2^n \!\! \pmod{4} }[/math]

Kongruencja ta jest prawdziwa tylko dla [math]\displaystyle{ n = 1 }[/math] i w tym przypadku mamy [math]\displaystyle{ (x, y) = (1, 1) }[/math].

C. W przypadku, gdy obie liczby są parzyste, możemy napisać [math]\displaystyle{ x = 2^a u }[/math], [math]\displaystyle{ y = 2^b w }[/math], gdzie liczby [math]\displaystyle{ u, w }[/math] są nieparzyste. Nie zmniejszając ogólności możemy założyć, że [math]\displaystyle{ 1 \leqslant a \leqslant b \lt {\small\frac{n}{2}} }[/math]. Dostajemy

[math]\displaystyle{ u^2 + 2^{2 b - 2 a} w^2 = 2^{n - 2 a} }[/math]

Widzimy, że nie może być [math]\displaystyle{ a \lt b }[/math], bo suma liczby nieparzystej i parzystej nie jest liczbą parzystą. Zatem [math]\displaystyle{ a = b }[/math] i otrzymujemy równanie

[math]\displaystyle{ u^2 + w^2 = 2^{n - 2 a} }[/math]

które ma rozwiązanie w liczbach nieparzystych tylko dla wykładnika [math]\displaystyle{ n - 2 a = 1 }[/math]. Mamy [math]\displaystyle{ u = w = 1 }[/math], zatem [math]\displaystyle{ x = y = 2^{(n - 1) / 2} }[/math] i [math]\displaystyle{ n }[/math] musi być liczbą nieparzystą.


Twierdzenie J25
Niech [math]\displaystyle{ x, y \in \mathbb{Z}_+ }[/math]. Jeżeli [math]\displaystyle{ x \neq y }[/math], to liczba [math]\displaystyle{ x^2 + y^2 }[/math] ma dzielnik pierwszy postaci [math]\displaystyle{ 4 k + 1 }[/math].

Dowód

W przypadku, gdy [math]\displaystyle{ x = y }[/math] mamy [math]\displaystyle{ x^2 + y^2 = 2 y^2 }[/math] i jeśli liczba [math]\displaystyle{ y }[/math] nie ma dzielnika pierwszego postaci [math]\displaystyle{ 4 k + 1 }[/math], to nie ma go również liczba [math]\displaystyle{ 2 y^2 }[/math]. Przykładowo [math]\displaystyle{ 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]\displaystyle{ x \neq y }[/math]. Analogiczna sytuacja ma miejsce, gdy jedna z liczb [math]\displaystyle{ x, y }[/math] jest równa zero. Dlatego zakładamy, że [math]\displaystyle{ x, y \in \mathbb{Z}_+ }[/math].

Niech [math]\displaystyle{ \gcd (x, y) = d }[/math], zatem mamy [math]\displaystyle{ x = a d }[/math], [math]\displaystyle{ y = b d }[/math]. Wynika stąd, że [math]\displaystyle{ x^2 + y^2 = d^2 (a^2 + b^2) }[/math], gdzie [math]\displaystyle{ \gcd (a, b) = 1 \, }[/math] i [math]\displaystyle{ \, a \neq b }[/math]. Ponieważ [math]\displaystyle{ \, a \neq b }[/math], to liczba [math]\displaystyle{ a^2 + b^2 }[/math] musi mieć dzielnik pierwszy nieparzysty (zobacz J24). Z twierdzenia J23 zastosowanego do liczby [math]\displaystyle{ a^2 + b^2 }[/math] wynika, że [math]\displaystyle{ a^2 + b^2 }[/math] musi mieć dzielnik pierwszy postaci [math]\displaystyle{ 4 k + 1 }[/math].


Zadanie J26
Pokazać, że jeżeli [math]\displaystyle{ m \in \mathbb{Z}_+ }[/math], to [math]\displaystyle{ m \geqslant 2 }[/math] nie jest dzielnikiem liczby [math]\displaystyle{ 2^m - 1 }[/math].

Rozwiązanie

Ponieważ liczby parzyste nie mogą dzielić liczby nieparzystej [math]\displaystyle{ 2^m - 1 }[/math], to możemy założyć, że [math]\displaystyle{ m }[/math] jest liczbą nieparzystą. Zatem [math]\displaystyle{ \gcd (m, 2) = 1 }[/math] i liczba [math]\displaystyle{ 2 }[/math] ma element odwrotny modulo [math]\displaystyle{ m }[/math].

Niech [math]\displaystyle{ p }[/math] będzie najmniejszym dzielnikiem pierwszym liczby nieparzystej [math]\displaystyle{ m }[/math], wtedy [math]\displaystyle{ \gcd (m, p - 1) = 1 }[/math] i z lematu Bezout'a (zobacz C73) istnieją takie liczby całkowite [math]\displaystyle{ x, y }[/math], że

[math]\displaystyle{ m x + (p - 1) y = 1 }[/math]

Załóżmy, dla uzyskania sprzeczności, że [math]\displaystyle{ m \mid (2^m - 1) }[/math]. Zatem

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

i dostajemy

[math]\displaystyle{ 2 = 2^1 = 2^{m x + (p - 1) y} \equiv (2^m)^x \cdot (2^{p - 1})^y \equiv 1 \!\! \pmod{p} }[/math]

Co jest niemożliwe.



Twierdzenie Eulera

Twierdzenie Eulera jest uogólnieniem twierdzenia Fermata.
Twierdzenie J27 (Leonhard Euler, 1763)
Niech [math]\displaystyle{ a \in \mathbb{Z} }[/math], [math]\displaystyle{ m \in \mathbb{Z}_+ }[/math] oraz [math]\displaystyle{ \gcd (a, m) = 1 }[/math], wtedy

[math]\displaystyle{ a^{\varphi (m)} \equiv 1 \!\! \pmod{m} }[/math]
Dowód

Łatwo zauważyć, że twierdzenie jest prawdziwe dla [math]\displaystyle{ m = 1, 2 }[/math], zatem będziemy rozpatrywali przypadek, gdy [math]\displaystyle{ m \geqslant 3 }[/math].

Niech [math]\displaystyle{ R = \{ r_1, r_2, \ldots, r_{\varphi (m)} \} }[/math] będzie zbiorem wszystkich liczb całkowitych dodatnich nie większych od [math]\displaystyle{ m }[/math] i względnie pierwszych z [math]\displaystyle{ m }[/math]. Niech [math]\displaystyle{ S = \{ a r_1, a r_2, \ldots, a r_{\varphi (m)} \} }[/math]. Prosta analiza właściwości zbiorów [math]\displaystyle{ R }[/math] i [math]\displaystyle{ S }[/math] stanowi podstawę dowodu twierdzenia.

1. Wszystkie elementy w [math]\displaystyle{ \boldsymbol{R} }[/math] są różne modulo [math]\displaystyle{ \boldsymbol{m} }[/math]

Nie może być [math]\displaystyle{ r_i \equiv r_j \!\! \pmod{m} }[/math] dla różnych [math]\displaystyle{ i, j }[/math], bo dla [math]\displaystyle{ m \geqslant 3 }[/math] mamy oszacowanie [math]\displaystyle{ 1 \leqslant r_i, r_j \leqslant m - 1 }[/math], skąd otrzymujemy [math]\displaystyle{ 0 \leqslant | r_i - r_j | \leqslant m - 2 }[/math]. Wynika stąd, że [math]\displaystyle{ m \mid (r_i - r_j) }[/math] tylko w przypadku, gdy [math]\displaystyle{ r_i = r_j }[/math], czyli gdy [math]\displaystyle{ i = j }[/math].

2. Wszystkie elementy w [math]\displaystyle{ \boldsymbol{S} }[/math] są względnie pierwsze z [math]\displaystyle{ \boldsymbol{m} }[/math]

Z definicji dowolna liczba [math]\displaystyle{ r_i \in R }[/math] jest względnie pierwsza z [math]\displaystyle{ m }[/math] oraz z założenia [math]\displaystyle{ \gcd (a, m) = 1 }[/math]. Z twierdzenia H6 otrzymujemy natychmiast, że [math]\displaystyle{ \gcd (a r_i, m) = 1 }[/math].

3. Wszystkie elementy w [math]\displaystyle{ \boldsymbol{S} }[/math] są różne modulo [math]\displaystyle{ m }[/math]

Załóżmy, dla uzyskania sprzeczności, że dla różnych wskaźników [math]\displaystyle{ i, j }[/math] jest [math]\displaystyle{ a r_i \equiv a r_j \!\! \pmod{m} }[/math]. Ponieważ [math]\displaystyle{ \gcd (a, m) = 1 }[/math], to liczba [math]\displaystyle{ a }[/math] ma element odwrotny modulo [math]\displaystyle{ m }[/math]. Mnożąc obie strony kongruencji przez [math]\displaystyle{ a^{- 1} }[/math] otrzymujemy [math]\displaystyle{ r_i \equiv r_j \!\! \pmod{m} }[/math] dla różnych [math]\displaystyle{ i, j }[/math], co jest niemożliwe (zobacz punkt 1).

4. Każdy element w [math]\displaystyle{ \boldsymbol{S} }[/math] jest równy modulo [math]\displaystyle{ \boldsymbol{m} }[/math] pewnemu elementowi w [math]\displaystyle{ \boldsymbol{R} }[/math]

Dla każdego [math]\displaystyle{ i = 1, \ldots, \varphi (m) }[/math] liczba [math]\displaystyle{ a r_i \in S }[/math] może być zapisana w postaci [math]\displaystyle{ a r_i = k m + r }[/math], gdzie [math]\displaystyle{ k \in \mathbb{Z} \; }[/math] i [math]\displaystyle{ \; 0 \leqslant r \lt m }[/math]. Ponieważ

[math]\displaystyle{ \gcd (a r_i, m) = 1 = \gcd (k m + r, m) = \gcd (r, m) }[/math]

to [math]\displaystyle{ r \in R }[/math] i musi być [math]\displaystyle{ a r_i \equiv r_j \!\! \pmod{m} }[/math] dla pewnego [math]\displaystyle{ r_j \in R }[/math].


Z punktów 1., 2. i 4. wynika natychmiast, że zbiory [math]\displaystyle{ R }[/math] i [math]\displaystyle{ S }[/math] są równe modulo [math]\displaystyle{ m }[/math] (zobacz H24), zatem

[math]\displaystyle{ a r_1 \cdot a r_2 \cdot \ldots \cdot a r_{\varphi (m)} \equiv r_1 \cdot r_2 \cdot \ldots \cdot r_{\varphi (m)} \!\! \pmod{m} }[/math]
[math]\displaystyle{ r_1 \cdot r_2 \cdot \ldots \cdot r_{\varphi (m)} \cdot a^{\varphi (m)} \equiv r_1 \cdot r_2 \cdot \ldots \cdot r_{\varphi (m)} \!\! \pmod{m} }[/math]

Ale [math]\displaystyle{ \gcd (r_1 r_2 \cdot \ldots \cdot r_{\varphi (m)}, m) = 1 }[/math] i mnożąc obie strony powyższej kongruencji przez element odwrotny do [math]\displaystyle{ r_1 r_2 \cdot \ldots \cdot r_{\varphi (m)} }[/math] modulo [math]\displaystyle{ m }[/math], otrzymujemy

[math]\displaystyle{ a^{\varphi (m)} \equiv 1 \!\! \pmod{m} }[/math]

Co należało pokazać.


Zadanie J28
Niech [math]\displaystyle{ m \in \mathbb{Z}_+ }[/math], zaś [math]\displaystyle{ a, b \in \mathbb{Z} }[/math]. Pokazać, że jeżeli [math]\displaystyle{ \gcd (a, m) = 1 }[/math], to kongruencja [math]\displaystyle{ a x \equiv b \!\! \pmod{m} }[/math] ma jednoznaczne rozwiązanie równe

[math]\displaystyle{ x \equiv a^{\varphi (m) - 1} \cdot b \!\! \pmod{m} }[/math]
Rozwiązanie

Z twierdzenia Eulera wynika, że jeżeli [math]\displaystyle{ \gcd (a, m) = 1 }[/math], to elementem odwrotnym do [math]\displaystyle{ a }[/math] modulo [math]\displaystyle{ m }[/math] jest [math]\displaystyle{ a^{\varphi (m) - 1} }[/math]. Istotnie

[math]\displaystyle{ a^{\varphi (m) - 1} \cdot a = a^{\varphi (m)} \equiv 1 \!\! \pmod{m} }[/math]

Zatem mnożąc obie strony kongruencji [math]\displaystyle{ a x \equiv b \!\! \pmod{m} }[/math] przez [math]\displaystyle{ a^{\varphi (m) - 1} }[/math], otrzymujemy

[math]\displaystyle{ a^{\varphi (m) - 1} \cdot a x = a^{\varphi (m)} \cdot x \equiv x \equiv a^{\varphi (m) - 1} \cdot b \!\! \pmod{m} }[/math]
[math]\displaystyle{ x \equiv a^{\varphi (m) - 1} \cdot b \!\! \pmod{m} }[/math]

Co było do pokazania.



Kryterium Eulera

Definicja J29
Niech [math]\displaystyle{ p }[/math] będzie liczbą pierwszą i [math]\displaystyle{ a \in \mathbb{Z} }[/math]. Powiemy, że liczba [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ p }[/math], jeżeli kongruencja

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

ma rozwiązanie, czyli istnieje taka liczba [math]\displaystyle{ k \in \mathbb{Z} }[/math], że [math]\displaystyle{ p \mid (k^2 - a) }[/math].

Powiemy, że liczba [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ p }[/math], jeżeli kongruencja

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

nie ma rozwiązania.


Twierdzenie J30
Jeżeli [math]\displaystyle{ p }[/math] jest liczbą pierwszą nieparzystą, to wśród liczb [math]\displaystyle{ 1, 2, \ldots, p - 1 }[/math] istnieje dokładnie [math]\displaystyle{ {\small\frac{p - 1}{2}} }[/math] liczb kwadratowych modulo [math]\displaystyle{ p }[/math] i tyle samo liczb niekwadratowych modulo [math]\displaystyle{ p }[/math].

Dowód

Zauważmy, że w rozważanym zbiorze liczb [math]\displaystyle{ \{ 1, 2, \ldots, p - 1 \} }[/math], kwadraty liczb [math]\displaystyle{ k }[/math] i [math]\displaystyle{ p - k }[/math] są takimi samymi liczbami modulo [math]\displaystyle{ p }[/math], co wynika z oczywistej kongruencji

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

Pozwala to wypisać pary liczb, których kwadraty są identyczne modulo [math]\displaystyle{ p }[/math]

[math]\displaystyle{ (1, p - 1), (2, p - 2), \ldots, \left( {\small\frac{p - 1}{2}}, p - {\small\frac{p - 1}{2}} \right) }[/math]

Ponieważ

[math]\displaystyle{ 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]\displaystyle{ \{ 1, 2, \ldots, p - 1 \} }[/math]. Co więcej, liczby [math]\displaystyle{ 1^2, 2^2, \ldots, \left( {\small\frac{p - 1}{2}} \right)^2 }[/math] są wszystkie różne modulo [math]\displaystyle{ p }[/math]. Istotnie, przypuśćmy, że [math]\displaystyle{ 1 \leqslant i, j \leqslant {\small\frac{p - 1}{2}} }[/math] oraz [math]\displaystyle{ i \neq j }[/math], a jednocześnie [math]\displaystyle{ i^2 \equiv j^2 \!\! \pmod{p} }[/math]. Gdyby tak było, to mielibyśmy

[math]\displaystyle{ (i - j) (i + j) \equiv 0 \pmod{p} }[/math]

Łatwo zauważamy, że jest to niemożliwe, bo żaden z czynników nie jest podzielny przez [math]\displaystyle{ p }[/math], co wynika z prostych oszacowań

[math]\displaystyle{ 1 \leqslant | i - j | \leqslant i + j \lt p - 1 }[/math]
[math]\displaystyle{ 2 \lt i + j \lt p - 1 }[/math]


Ponieważ (z definicji) liczba [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ p }[/math], jeżeli kongruencja

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

ma rozwiązanie, to liczba kwadratowa modulo [math]\displaystyle{ p }[/math] musi przystawać do pewnego kwadratu modulo [math]\displaystyle{ p }[/math].

Wynika stąd, że różnych liczb kwadratowych modulo [math]\displaystyle{ p }[/math] jest tyle samo, co kwadratów [math]\displaystyle{ 1^2, 2^2, \ldots, \left( {\small\frac{p - 1}{2}} \right)^2 }[/math]. Czyli jest ich dokładnie [math]\displaystyle{ {\small\frac{p - 1}{2}} }[/math]. Pozostałe liczby w zbiorze [math]\displaystyle{ \{ 1, 2, \ldots, p - 1 \} }[/math] to liczby niekwadratowe modulo [math]\displaystyle{ p }[/math] i jest ich również [math]\displaystyle{ {\small\frac{p - 1}{2}} }[/math]. Co należało pokazać.


Twierdzenie J31 (kryterium Eulera, 1748)
Niech [math]\displaystyle{ p }[/math] będzie liczbą pierwszą nieparzystą i [math]\displaystyle{ p \nmid a }[/math]. Modulo [math]\displaystyle{ p }[/math] mamy

●    liczba [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ p }[/math] wtedy i tylko wtedy, gdy [math]\displaystyle{ a^{(p - 1) / 2} \equiv 1 \pmod{p} }[/math]
●    liczba [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ p }[/math] wtedy i tylko wtedy, gdy [math]\displaystyle{ a^{(p - 1) / 2} \equiv - 1 \pmod{p} }[/math]
Dowód

Punkt 1.

Niech [math]\displaystyle{ Q \subset \{ 1, 2, \ldots, p - 1 \} }[/math] będzie zbiorem wszystkich liczb kwadratowych modulo [math]\displaystyle{ p }[/math], a [math]\displaystyle{ S \subset \{ 1, 2, \ldots, p - 1 \} }[/math] będzie zbiorem wszystkich rozwiązań kongruencji

[math]\displaystyle{ x^{(p - 1) / 2} \equiv 1 \pmod{p} }[/math]

Zauważmy, że

   A       [math]\displaystyle{ | Q | = {\small\frac{p - 1}{2}} }[/math]    zobacz J30
   B       [math]\displaystyle{ | S | \leqslant {\small\frac{p - 1}{2}} }[/math]    zobacz twierdzenie Lagrange'a J14
   C       jeżeli [math]\displaystyle{ a \in Q }[/math], to [math]\displaystyle{ a \in S \qquad }[/math]    wynika z ciągu implikacji:
         [math]\displaystyle{ a \in Q \qquad \Longrightarrow \qquad a \equiv k^2 \pmod{p} }[/math]
         [math]\displaystyle{ 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]   
         [math]\displaystyle{ a^{(p - 1) / 2} \equiv 1 \pmod{p} \qquad \Longrightarrow \qquad a \in S }[/math]
   D       [math]\displaystyle{ Q \subseteq S }[/math]    z punktu C wynika, że każdy element zbioru [math]\displaystyle{ Q }[/math] należy do zbioru [math]\displaystyle{ S }[/math]


Łącząc rezultaty z tabeli, otrzymujemy

[math]\displaystyle{ {\small\frac{p - 1}{2}} = | Q | \leqslant | S | \leqslant {\small\frac{p - 1}{2}} }[/math]

Skąd łatwo widzimy, że

[math]\displaystyle{ | Q | = | S | = {\small\frac{p - 1}{2}} }[/math]

Ponieważ [math]\displaystyle{ Q \subseteq S }[/math], a zbiory [math]\displaystyle{ Q }[/math] i [math]\displaystyle{ S }[/math] są równoliczne, to zbiory te są równe (zobacz H23). Prostą konsekwencją równości zbiorów [math]\displaystyle{ Q }[/math] i [math]\displaystyle{ S }[/math] jest stwierdzenie

   liczba [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ p }[/math] wtedy i tylko wtedy, gdy [math]\displaystyle{ a^{(p - 1) / 2} \equiv 1 \pmod{p} }[/math]   

Co kończy dowód punktu pierwszego.

Punkt 2.

Z udowodnionego już punktu pierwszego wynika[3], że

   liczba [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ p }[/math] wtedy i tylko wtedy, gdy [math]\displaystyle{ a^{(p - 1) / 2} \not\equiv 1 \pmod{p} }[/math]   

Z twierdzenia Fermata

[math]\displaystyle{ 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]\displaystyle{ a^{(p - 1) / 2} - 1 \not\equiv 0 \pmod{p} }[/math], to musi być

[math]\displaystyle{ a^{(p - 1) / 2} + 1 \equiv 0 \pmod{p} }[/math]

Fakt ten pozwala sformułować uzyskaną równoważność bardziej precyzyjnie

   liczba [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ p }[/math] wtedy i tylko wtedy, gdy [math]\displaystyle{ a^{(p - 1) / 2} \equiv - 1 \pmod{p} }[/math]   

Co należało pokazać.



Symbol Legendre'a

Definicja J32
Niech [math]\displaystyle{ p }[/math] będzie liczbą pierwszą nieparzystą i [math]\displaystyle{ a \in \mathbb{Z} }[/math]. Symbolem Legendre'a[4] nazywamy funkcję [math]\displaystyle{ a }[/math] i [math]\displaystyle{ p }[/math] zdefiniowaną następująco

[math]\displaystyle{ \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} = \left\{ \begin{array}{rl} 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 \mid a \\ \end{array} \right. }[/math]


Uwaga J33
Powyższa definicja pozwala nam zapisać kryterium Eulera w zwartej formie, która obejmuje również przypadek, gdy [math]\displaystyle{ p \mid a }[/math]

[math]\displaystyle{ a^{(p - 1) / 2} \equiv \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \pmod{p} }[/math]


Twierdzenie J34*
Niech [math]\displaystyle{ a, b \in \mathbb{Z} }[/math] oraz [math]\displaystyle{ p, q }[/math] będą nieparzystymi liczbami pierwszymi. Symbol Legendre'a ma następujące właściwości


Zadanie J35
Niech [math]\displaystyle{ p }[/math] będzie liczbą pierwszą nieparzystą. Pokazać, że

  •   jeżeli [math]\displaystyle{ a }[/math] jest liczbą kwadratową (niekwadratową) modulo [math]\displaystyle{ p }[/math], to element odwrotny liczby [math]\displaystyle{ a }[/math] modulo [math]\displaystyle{ p }[/math] istnieje i jest liczbą kwadratową (niekwadratową) modulo [math]\displaystyle{ p }[/math]
  •   jeżeli [math]\displaystyle{ a, b }[/math] są liczbami kwadratowymi (niekwadratowymi) modulo [math]\displaystyle{ p }[/math], to istnieje taka liczba [math]\displaystyle{ r }[/math], że [math]\displaystyle{ a \equiv b r^2 \!\! \pmod{p} }[/math]
Rozwiązanie

Z założenia [math]\displaystyle{ a }[/math] jest liczbą kwadratową (niekwadratową) modulo [math]\displaystyle{ p }[/math], zatem [math]\displaystyle{ \gcd (a, p) = 1 }[/math], czyli element odwrotny (zobacz H18) liczby [math]\displaystyle{ a }[/math] modulo [math]\displaystyle{ p }[/math] istnieje. Mamy

[math]\displaystyle{ 1 = \left( {\small\frac{1}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{a a^{- 1}}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \cdot \left( {\small\frac{a^{- 1}}{p}} \right)_{\small{\!\! L}} }[/math]

Zatem musi być

[math]\displaystyle{ \left( {\small\frac{a^{- 1}}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} }[/math]

Co należało pokazać.


Niech [math]\displaystyle{ a, b }[/math] będą liczbami kwadratowymi (niekwadratowymi). Iloczyn [math]\displaystyle{ a b^{- 1} }[/math] jest liczbą kwadratową, bo

[math]\displaystyle{ \left( {\small\frac{a b^{- 1}}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \cdot \left( {\small\frac{b^{- 1}}{p}} \right)_{\small{\!\! L}} = \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} \cdot \left( {\small\frac{b}{p}} \right)_{\small{\!\! L}} = \left( \pm 1 \right) \cdot \left( \pm 1 \right) = \left( \pm 1 \right)^2 = 1 }[/math]

Zatem istnieje taka liczba [math]\displaystyle{ r }[/math], że

[math]\displaystyle{ a b^{- 1} \equiv r^2 \!\! \pmod{p} }[/math]

Czyli

[math]\displaystyle{ a \equiv b r^2 \!\! \pmod{p} }[/math]

Co należało pokazać.



Symbol Jacobiego

Definicja J36
Niech liczby [math]\displaystyle{ a \in \mathbb{Z} }[/math] i [math]\displaystyle{ m \in \mathbb{Z}_+ }[/math] będą względnie pierwsze. Powiemy, że liczba [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ m }[/math], jeżeli kongruencja

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

ma rozwiązanie, czyli istnieje taka liczba [math]\displaystyle{ k \in \mathbb{Z} }[/math], że [math]\displaystyle{ m \mid (k^2 - a) }[/math].

Powiemy, że liczba [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ m }[/math], jeżeli kongruencja

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

nie ma rozwiązania.


Uwaga J37
Prosta funkcja pozwala łatwo sprawdzić, czy liczba [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ m }[/math].

isQR(a, m) = 
\\ funkcja zwraca 1, gdy a jest liczbą kwadratową modulo m,
\\ -1, gdy a jest liczbą niekwadratową i 0, gdy gcd(a, m) > 1
{
local(w);
if( gcd(a, m) > 1, return(0) ); \\ liczba nie jest ani QR, ani QNR
w = -1;
for(k = 1, floor(m/2), if( (k^2 - a)%m == 0, w = 1; break() ));
return(w);
}


Uwaga J38
Ponieważ często można spotkać definicję liczb kwadratowych i niekwadratowych modulo [math]\displaystyle{ m }[/math], w której warunek [math]\displaystyle{ \gcd (a, m) = 1 }[/math] zostaje pominięty, to Czytelnik powinien zawsze upewnić się, jaka definicja jest stosowana. Najczęściej w takim przypadku liczba [math]\displaystyle{ 0 }[/math] nie jest uznawana za liczbę kwadratową modulo [math]\displaystyle{ m }[/math].

Przykładowo:

[math]\displaystyle{ \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]\displaystyle{ 10 }[/math] to [math]\displaystyle{ \left\{ 1, 9 \right\} }[/math], a niekwadratowe to [math]\displaystyle{ \left\{ 3, 7 \right\} }[/math]. Liczby [math]\displaystyle{ \left\{ 0, 2, 4, 5, 6, 8 \right\} }[/math] nie są ani liczbami kwadratowymi, ani liczbami niekwadratowymi modulo [math]\displaystyle{ 10 }[/math].

Jeśli odrzucimy warunek [math]\displaystyle{ \gcd (a, m) = 1 }[/math], to liczbami kwadratowymi modulo [math]\displaystyle{ 10 }[/math] będą [math]\displaystyle{ \left\{ 0, 1, 4, 5, 6, 9 \right\} }[/math], a niekwadratowymi [math]\displaystyle{ \left\{ 2, 3, 7, 8 \right\} }[/math].

Inny przykład. Niech [math]\displaystyle{ m = 210 = 2 \cdot 3 \cdot 5 \cdot 7 }[/math]. W zależności od przyjętej definicji najmniejszą dodatnią liczbą niekwadratową modulo [math]\displaystyle{ m }[/math] będzie albo [math]\displaystyle{ 11 }[/math], albo [math]\displaystyle{ 2 }[/math].


Zadanie J39
Niech liczby [math]\displaystyle{ m, n \in \mathbb{Z}_+ }[/math] i [math]\displaystyle{ \gcd (m, n) = 1 }[/math]. Pokazać, że liczba [math]\displaystyle{ a \in \mathbb{Z} }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ m n }[/math] wtedy i tylko wtedy, gdy jest liczbą kwadratową modulo [math]\displaystyle{ m }[/math] i modulo [math]\displaystyle{ n }[/math].

Rozwiązanie

Niech [math]\displaystyle{ W(x) = x^2 - a }[/math]. Zauważmy, że liczba [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ m }[/math] wtedy i tylko wtedy, gdy kongruencja [math]\displaystyle{ W(x) \equiv 0 \!\! \pmod{m} }[/math] ma rozwiązanie. Dalsza analiza problemu przebiega dokładnie tak, jak to zostało przedstawione w uwadze J12.


Definicja J40
Symbol Jacobiego[5] [math]\displaystyle{ \left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} }[/math] jest uogólnieniem symbolu Legendre'a [math]\displaystyle{ \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} }[/math] dla dodatnich liczb nieparzystych. Niech [math]\displaystyle{ n = \prod_i p_i^{\alpha_i} }[/math] będzie rozkładem liczby [math]\displaystyle{ n }[/math] na czynniki pierwsze, wtedy

[math]\displaystyle{ \left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} = \prod_i \left( {\small\frac{a}{p_i}} \right)_{\small{\!\! L}}^{\!\! \alpha_i} }[/math]


Uwaga J41
Zauważmy, że w przypadku gdy [math]\displaystyle{ 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]\displaystyle{ a \in \mathbb{Z} }[/math] jest [math]\displaystyle{ \left( {\small\frac{a}{1}} \right)_{\small{\!\! J}} = 1 }[/math].


Twierdzenie J42*
Niech [math]\displaystyle{ a, b \in \mathbb{Z} }[/math] oraz [math]\displaystyle{ m, n \in \mathbb{Z}_+ }[/math] i [math]\displaystyle{ m, n }[/math] będą liczbami nieparzystymi. Symbol Jacobiego ma następujące właściwości


Uwaga J43
Zauważmy, że poza zmienionym założeniem tabela z powyższego twierdzenia i tabela z twierdzenia J34 różnią się jedynie punktem czwartym. Oczywiście jest to tylko podobieństwo formalne – symbol Legendre'a i symbol Jacobiego są różnymi funkcjami.


Uwaga J44
Zauważmy, że w przypadku, gdy [math]\displaystyle{ m }[/math] jest liczbą nieparzystą

  • jeżeli [math]\displaystyle{ \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1 }[/math], to [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ m }[/math]
  • jeżeli [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ m }[/math], to nie musi być [math]\displaystyle{ \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = - 1 }[/math]
  • jeżeli [math]\displaystyle{ \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = + 1 }[/math], to [math]\displaystyle{ a }[/math] nie musi być liczbą kwadratową modulo [math]\displaystyle{ m }[/math]
  • jeżeli [math]\displaystyle{ a }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ m }[/math], to jest [math]\displaystyle{ \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = + 1 }[/math]

Przykład: jeżeli [math]\displaystyle{ \gcd (a, m) = 1 }[/math], to [math]\displaystyle{ \left( {\small\frac{a}{m^2}} \right)_{\small{\!\! J}} = \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}}^2 = + 1 }[/math], ale [math]\displaystyle{ a }[/math] może być liczbą niekwadratową modulo [math]\displaystyle{ m^2 }[/math].

Modulo [math]\displaystyle{ 9 }[/math] liczbami niekwadratowymi są: [math]\displaystyle{ 2, 5, 8 }[/math]. Modulo [math]\displaystyle{ 25 }[/math] liczbami niekwadratowymi są: [math]\displaystyle{ 2, 3, 7, 8, 12, 13, 17, 18, 22, 23 }[/math].


Uwaga J45
Wszystkie liczby kwadratowe i niekwadratowe modulo [math]\displaystyle{ m }[/math] można łatwo znaleźć, wykorzystując prosty program:

Pokaż kod
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
}



Zadanie J46
Pokazać, że

[math]\displaystyle{ \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]
Rozwiązanie

Zauważmy, że

[math]\displaystyle{ \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]\displaystyle{ \; = (- 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]\displaystyle{ \; = (- 1)^{m - 1} \cdot \left( {\small\frac{m}{3}} \right)_{\small{\!\! J}} }[/math]
[math]\displaystyle{ \; = \left( {\small\frac{m}{3}} \right)_{\small{\!\! J}} }[/math]

bo [math]\displaystyle{ m }[/math] jest liczbą nieparzystą.

Rozważmy liczby nieparzyste [math]\displaystyle{ m }[/math] postaci [math]\displaystyle{ 6 k + r }[/math], gdzie [math]\displaystyle{ r = 1, 3, 5 }[/math]. Mamy

[math]\displaystyle{ \left( {\small\frac{- 3}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{m}{3}} \right)_{\small{\!\! J}} }[/math]
[math]\displaystyle{ \; = \left( {\small\frac{6 k + r}{3}} \right)_{\small{\!\! J}} }[/math]
[math]\displaystyle{ \; = \left( {\small\frac{r}{3}} \right)_{\small{\!\! J}} }[/math]
[math]\displaystyle{ \; = \begin{cases} \;\;\: 1 & \text{gdy } r = 1 \\ \;\;\: 0 & \text{gdy } r = 3 \\ - 1 & \text{gdy } r = 5 \\ \end{cases} }[/math]

bo odpowiednio dla [math]\displaystyle{ r = 1, 3, 5 }[/math] jest

[math]\displaystyle{ \left( {\small\frac{1}{3}} \right)_{\small{\!\! J}} = 1 }[/math]
[math]\displaystyle{ \left( {\small\frac{3}{3}} \right)_{\small{\!\! J}} = 0 }[/math]
[math]\displaystyle{ \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]\displaystyle{ \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ć.


Zadanie J47
Pokazać, że

[math]\displaystyle{ \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]\displaystyle{ \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]
Rozwiązanie

Punkt 1.

Przy wyliczaniu symboli Legendre'a i Jacobiego, zawsze warto sprawdzić, czy da się ustalić przystawanie liczb modulo [math]\displaystyle{ 4 }[/math]. W tym przypadku mamy

[math]\displaystyle{ 3 \equiv 3 \pmod{4} }[/math]

i odpowiednio dla różnych postaci liczby [math]\displaystyle{ m }[/math] jest

[math]\displaystyle{ m = 12 k + 1 \equiv 1 \pmod{4} }[/math]
[math]\displaystyle{ m = 12 k + 5 \equiv 1 \pmod{4} }[/math]
[math]\displaystyle{ m = 12 k + 7 \equiv 3 \pmod{4} }[/math]
[math]\displaystyle{ m = 12 k + 11 \equiv 3 \pmod{4} }[/math]

Ułatwi nam to znacznie wykonywanie przekształceń (zobacz J42 p.9)

[math]\displaystyle{ \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]
[math]\displaystyle{ \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]
[math]\displaystyle{ \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]
[math]\displaystyle{ \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]

Punkt 2.

Ponieważ [math]\displaystyle{ 5 \equiv 1 \!\! \pmod{4} }[/math], to nie ma już znaczenia, czy [math]\displaystyle{ m \equiv 1 \!\! \pmod{4} }[/math], czy też [math]\displaystyle{ m \equiv 3 \!\! \pmod{4} }[/math]. Otrzymujemy natychmiast (zobacz J42 p.9)

[math]\displaystyle{ \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]

Rozważmy liczby nieparzyste [math]\displaystyle{ m }[/math] postaci [math]\displaystyle{ 10 k + r }[/math], gdzie [math]\displaystyle{ r = 1, 3, 5, 7, 9 }[/math]. Mamy

[math]\displaystyle{ \left( {\small\frac{5}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{m}{5}} \right)_{\small{\!\! J}} }[/math]
[math]\displaystyle{ \:\, \quad = \left( {\small\frac{10 k + r}{5}} \right)_{\small{\!\! J}} }[/math]
[math]\displaystyle{ \:\, \quad = \left( {\small\frac{r}{5}} \right)_{\small{\!\! J}} }[/math]
[math]\displaystyle{ \:\, \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]\displaystyle{ r = 1, 3, 5, 7, 9 }[/math] jest

[math]\displaystyle{ \left( {\small\frac{1}{5}} \right)_{\small{\!\! J}} = 1 }[/math]
[math]\displaystyle{ \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]\displaystyle{ \left( {\small\frac{5}{5}} \right)_{\small{\!\! J}} = 0 }[/math]
[math]\displaystyle{ \left( {\small\frac{7}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{2}{5}} \right)_{\small{\!\! J}} = (- 1)^{\tfrac{25 - 1}{8}} = - 1 }[/math]
[math]\displaystyle{ \left( {\small\frac{9}{5}} \right)_{\small{\!\! J}} = \left( {\small\frac{3}{5}} \right)_{\small{\!\! J}}^{\! 2} = 1 }[/math]

Co należało pokazać.


Uwaga J48
Wykorzystując podane w twierdzeniu J42 właściwości symbolu Jacobiego, możemy napisać prostą funkcję w PARI/GP znajdującą jego wartość. Zauważmy, że nie potrzebujemy znać rozkładu liczby [math]\displaystyle{ n }[/math] na czynniki pierwsze.

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 ≡ 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 ≡ 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 ≡ n ≡ 3 (mod 4)
       a = a % n;
     );
if( n == 1, return(w), return(0) ); \\ n jest teraz równe gcd(a, n)
}

Zauważmy, że PARI/GP ma zaimplementowaną funkcję, która pozwala obliczać symbol Jacobiego. Jeżeli [math]\displaystyle{ a }[/math] jest liczbą całkowitą, a [math]\displaystyle{ n }[/math] dodatnią liczbą nieparzystą, to wystarczy napisać

kronecker(a, n)

aby otrzymać wartość symbolu Jacobiego [math]\displaystyle{ \left( {\small\frac{a}{n}} \right)_{\small{\!\! J}} }[/math].

Kod funkcji podaliśmy dlatego, że jest to ważna funkcja i Czytelnik powinien wiedzieć, jak jest realizowana. Znajomość kodu pozwala łatwo zapisać program w innych językach i obliczać wartości tej funkcji bez korzystania z programu PARI/GP.


Uwaga J49
Jeżeli [math]\displaystyle{ m }[/math] jest liczbą pierwszą, to symbol Jacobiego jest symbolem Legendre'a, czyli [math]\displaystyle{ \left( {\small\frac{a}{m}} \right)_{\small{\!\! J}} = \left( {\small\frac{a}{m}} \right)_{\small{\!\! L}} }[/math]. Jeżeli [math]\displaystyle{ m }[/math] jest liczbą złożoną, to symbol Legendre'a [math]\displaystyle{ \left( {\small\frac{a}{m}} \right)_{\small{\!\! L}} }[/math] nie istnieje, a symbol Jacobiego [math]\displaystyle{ \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 formie uproszczonej [math]\displaystyle{ (a \mid m) }[/math] i nie będziemy rozróżniali tych symboli. Interpretacja zapisu jest prosta:

  • jeżeli wiemy, że [math]\displaystyle{ m }[/math] jest liczbą pierwszą, to symbol [math]\displaystyle{ (a \mid m) }[/math] jest symbolem Legendre'a
  • jeżeli wiemy, że [math]\displaystyle{ m }[/math] jest liczbą złożoną, to symbol [math]\displaystyle{ (a \mid m) }[/math] jest symbolem Jacobiego
  • jeżeli nie wiemy, czy [math]\displaystyle{ m }[/math] jest liczbą pierwszą, czy złożoną, to symbol [math]\displaystyle{ (a \mid m) }[/math] jest symbolem Jacobiego



Rozwiązywanie kongruencji [math]\displaystyle{ x^2 \equiv a \!\! \pmod{m} }[/math]

Twierdzenie J50
Niech [math]\displaystyle{ p }[/math] będzie liczbą pierwszą nieparzystą, zaś [math]\displaystyle{ a }[/math] liczbą całkowitą taką, że [math]\displaystyle{ \gcd (a, p) = 1 }[/math]. Kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{p^n} }[/math]

ma rozwiązanie wtedy i tylko wtedy, gdy kongruencja

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

ma rozwiązanie.

Dowód

[math]\displaystyle{ \Large{\Longrightarrow} }[/math]

Z założenia kongruencja [math]\displaystyle{ x^2 \equiv a \!\! \pmod{p^n} }[/math] ma rozwiązanie. Zatem istnieje taka liczba [math]\displaystyle{ r \in \mathbb{Z} }[/math], że

[math]\displaystyle{ r^2 \equiv a \pmod{p^n} }[/math]

Ponieważ [math]\displaystyle{ p^n \mid (r^2 - a) }[/math], to tym bardziej [math]\displaystyle{ p \mid (r^2 - a) }[/math], co oznacza, że prawdziwa jest kongruencja

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

Skąd wynika natychmiast, że kongruencja [math]\displaystyle{ x^2 \equiv a \!\! \pmod{p} }[/math] ma rozwiązanie.

[math]\displaystyle{ \Large{\Longleftarrow} }[/math]

Indukcja matematyczna. Z uczynionego w twierdzeniu założenia wiemy, że kongruencja [math]\displaystyle{ x^2 \equiv a \!\! \pmod{p} }[/math] ma rozwiązanie. Zatem twierdzenie jest prawdziwe dla [math]\displaystyle{ n = 1 }[/math]. Załóżmy teraz (założenie indukcyjne), że kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{p^n} }[/math]

ma rozwiązanie [math]\displaystyle{ x \equiv u_n \!\! \pmod{p^n} }[/math] i pokażmy, że twierdzenie jest prawdziwe dla [math]\displaystyle{ n + 1 }[/math], czyli że rozwiązanie ma kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{p^{n + 1}} }[/math]

Wiemy, że liczba [math]\displaystyle{ u_n }[/math] jest określona modulo [math]\displaystyle{ p^n }[/math]. Nie tracąc ogólności, możemy założyć, że [math]\displaystyle{ 1 \leqslant u_n \lt p^n }[/math]. Wartość [math]\displaystyle{ u_n }[/math] może zostać wybrana dowolnie (modulo [math]\displaystyle{ p^n }[/math]), ale musi zostać ustalona — wymaga tego precyzja i czytelność dowodu. Zatem

[math]\displaystyle{ u^2_n - a = k p^n }[/math]

Zauważmy, że liczba [math]\displaystyle{ k }[/math] jest jednoznacznie określona, bo wartość [math]\displaystyle{ u_n }[/math] została ustalona. Ponieważ [math]\displaystyle{ \gcd (2 u_n, p) = 1 }[/math], to równanie

[math]\displaystyle{ 2 u_n \cdot s - p \cdot l = - k }[/math]

ma rozwiązanie (zobacz C76). Niech liczby [math]\displaystyle{ s_0 }[/math] i [math]\displaystyle{ l_0 }[/math] będą rozwiązaniem tego równania. Zatem

[math]\displaystyle{ 2 u_n \cdot s_0 - p \cdot l_0 = - k }[/math]
[math]\displaystyle{ 2 u_n \cdot s_0 p^n - l_0 \cdot p^{n + 1} = - k p^n }[/math]
[math]\displaystyle{ 2 u_n \cdot s_0 p^n - l_0 \cdot p^{n + 1} = - ( u^2_n - a ) }[/math]
[math]\displaystyle{ u^2_n + 2 u_n \cdot s_0 p^n = a + l_0 \cdot p^{n + 1} }[/math]

Modulo [math]\displaystyle{ p^{n + 1} }[/math] dostajemy

[math]\displaystyle{ u^2_n + 2 u_n \cdot s_0 p^n \equiv a \pmod{p^{n + 1}} }[/math]
[math]\displaystyle{ (u_n + s_0 p^n)^2 \equiv a \pmod{p^{n + 1}} }[/math]

bo [math]\displaystyle{ p^{n + 1} \mid p^{2 n} }[/math]. Zatem liczba [math]\displaystyle{ u_{n + 1} = u_n + s_0 p^n }[/math] jest rozwiązaniem kongruencji

[math]\displaystyle{ x^2 \equiv a \pmod{p^{n + 1}} }[/math]

Pokazaliśmy tym samym prawdziwość tezy indukcyjnej, co kończy dowód indukcyjny.


Uwaga J51
Dla niewielkich modułów rozwiązania dowolnej kongruencji możemy znaleźć przez bezpośrednie sprawdzenie. Omówimy teraz rozwiązania kongruencji [math]\displaystyle{ x^2 \equiv a \!\! \pmod{2^n} }[/math] dla [math]\displaystyle{ n = 1, 2, 3 }[/math]. Ponieważ zakładamy, że [math]\displaystyle{ \gcd (a, m) = \gcd (a, 2^n) = 1 }[/math], to [math]\displaystyle{ a }[/math] musi być liczbą nieparzystą, zaś [math]\displaystyle{ x }[/math] nie może być liczbą parzystą. Istotnie, gdyby tak było, to mielibyśmy [math]\displaystyle{ 0 \equiv 1 \!\! \pmod{2} }[/math], bo [math]\displaystyle{ 2 \mid 2^n }[/math].

Kongruencja

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

ma dokładnie jedno rozwiązanie [math]\displaystyle{ x \equiv 1 \!\! \pmod{2} }[/math].

Kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{4} }[/math]

ma dwa rozwiązania, gdy [math]\displaystyle{ a \equiv 1 \!\! \pmod{4} }[/math]. Rozwiązaniami są: [math]\displaystyle{ x \equiv 1, 3 \!\! \pmod{4} }[/math]. W przypadku, gdy [math]\displaystyle{ a \equiv 3 \!\! \pmod{4} }[/math] kongruencja nie ma rozwiązań.

Kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{8} }[/math]

ma cztery rozwiązania, gdy [math]\displaystyle{ a \equiv 1 \!\! \pmod{8} }[/math]. Rozwiązaniami są: [math]\displaystyle{ x \equiv 1, 3, 5, 7 \!\! \pmod{8} }[/math]. W przypadku, gdy [math]\displaystyle{ a \equiv 3, 5, 7 \!\! \pmod{8} }[/math] kongruencja nie ma rozwiązań.


Twierdzenie J52
Niech [math]\displaystyle{ n \geqslant 3 }[/math] i [math]\displaystyle{ a }[/math] będzie liczbą nieparzystą. Kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{2^n} }[/math]

ma rozwiązanie wtedy i tylko wtedy, gdy kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{8} }[/math]

ma rozwiązanie.

Dowód

[math]\displaystyle{ \Large{\Longrightarrow} }[/math]

Z założenia kongruencja [math]\displaystyle{ x^2 \equiv a \!\! \pmod{2^n} }[/math] ma rozwiązanie, zatem istnieje taka liczba [math]\displaystyle{ r \in \mathbb{Z} }[/math], że

[math]\displaystyle{ r^2 \equiv a \pmod{2^n} }[/math]

Ponieważ [math]\displaystyle{ 2^n \mid (r^2 - a) }[/math], gdzie [math]\displaystyle{ n \geqslant 3 }[/math], to tym bardziej [math]\displaystyle{ 2^3 \mid (r^2 - a) }[/math]. Co oznacza, że prawdziwa jest kongruencja

[math]\displaystyle{ r^2 \equiv a \pmod{2^3} }[/math]

Skąd wynika natychmiast, że kongruencja [math]\displaystyle{ x^2 \equiv a \!\! \pmod{8} }[/math] ma rozwiązanie.

[math]\displaystyle{ \Large{\Longleftarrow} }[/math]

Indukcja matematyczna. Z uczynionego w twierdzeniu założenia wiemy, że kongruencja [math]\displaystyle{ x^2 \equiv a \pmod{8} }[/math] ma rozwiązanie. Zatem twierdzenie jest prawdziwe dla [math]\displaystyle{ n = 3 }[/math]. Załóżmy teraz (założenie indukcyjne), że kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{2^n} }[/math]

ma rozwiązanie [math]\displaystyle{ x \equiv u_n \!\! \pmod{2^n} }[/math] i pokażemy, że twierdzenie jest prawdziwe dla [math]\displaystyle{ n + 1 }[/math], czyli że rozwiązanie ma kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{2^{n + 1}} }[/math]

Z założenia istnieje taka liczba [math]\displaystyle{ k }[/math], że [math]\displaystyle{ u^2_n - a = k \cdot 2^n }[/math]. Niech

[math]\displaystyle{ 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]\displaystyle{ (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]\displaystyle{ \;\! = k \cdot 2^n + 2^n r + r^2 \cdot 2^{2 n - 2} }[/math]
[math]\displaystyle{ \;\! = 2^n (k + r) + r^2 \cdot 2^{2 n - 2} }[/math]
[math]\displaystyle{ \;\! \equiv 0 \pmod{2^{n + 1}} }[/math]

bo [math]\displaystyle{ k + r }[/math] jest liczbą parzystą, a dla [math]\displaystyle{ n \geqslant 3 }[/math] mamy [math]\displaystyle{ 2 n - 2 \geqslant n + 1 }[/math]. Zatem liczba [math]\displaystyle{ u_{n + 1} = u_n + r \cdot 2^{n - 1} }[/math] jest rozwiązaniem kongruencji

[math]\displaystyle{ x^2 \equiv a \pmod{2^{n + 1}} }[/math]

Pokazaliśmy tym samym prawdziwość tezy indukcyjnej, co kończy dowód indukcyjny.


Wniosek J53
Jeżeli [math]\displaystyle{ a }[/math] jest liczbą nieparzystą, to kongruencja [math]\displaystyle{ x^2 \equiv a \!\! \pmod{2^n} }[/math] ma rozwiązanie wtedy i tylko wtedy, gdy [math]\displaystyle{ a }[/math] jest postaci [math]\displaystyle{ 2 k + 1 }[/math], [math]\displaystyle{ 4 k + 1 }[/math] lub [math]\displaystyle{ 8 k + 1 }[/math] w zależności od tego, czy [math]\displaystyle{ n = 1 }[/math], czy [math]\displaystyle{ n = 2 }[/math], czy [math]\displaystyle{ n \geqslant 3 }[/math].


Uwaga J54
Niech [math]\displaystyle{ m = p^{\alpha_1}_1 \cdot \ldots \cdot p^{\alpha_s}_s }[/math] i [math]\displaystyle{ \gcd (a, m) = 1 }[/math]. Z chińskiego twierdzenia o resztach (zobacz J3 i J12) wynika, że kongruencja [math]\displaystyle{ x^2 \equiv a \!\! \pmod{m} }[/math] ma rozwiązanie wtedy i tylko wtedy, gdy ma rozwiązanie każda z kongruencji

[math]\displaystyle{ \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 J32, twierdzeń J50 i J52, uwagi J51 i wniosku J53 otrzymujemy


Twierdzenie J55
Niech [math]\displaystyle{ m \in \mathbb{Z}_+ }[/math] i [math]\displaystyle{ \gcd (a, m) = 1 }[/math]. Kongruencja

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

ma rozwiązanie wtedy i tylko wtedy, gdy

●    dla każdego nieparzystego dzielnika pierwszego [math]\displaystyle{ p }[/math] liczby [math]\displaystyle{ m }[/math] jest  [math]\displaystyle{ \left( {\small\frac{a}{p}} \right)_{\small{\!\! L}} = 1 }[/math]
●    jeżeli  [math]\displaystyle{ 8 \mid m }[/math],  to  [math]\displaystyle{ 8 \mid ( a - 1 ) }[/math]
●    jeżeli  [math]\displaystyle{ 8 \nmid m }[/math],  ale  [math]\displaystyle{ 4 \mid m }[/math],  to  [math]\displaystyle{ 4 \mid ( a - 1 ) }[/math]


Twierdzenie J56
Niech [math]\displaystyle{ m \in \mathbb{Z}_+ }[/math] i [math]\displaystyle{ \gcd (a, m) = 1 }[/math]. Kongruencja

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

nie ma rozwiązania wtedy i tylko wtedy, gdy spełniony jest co najmniej jeden z warunków

●    jeżeli dla dowolnego nieparzystego dzielnika [math]\displaystyle{ d }[/math] liczby [math]\displaystyle{ m }[/math] jest [math]\displaystyle{ \left( {\small\frac{a}{d}} \right)_{\small{\!\! J}} = - 1 }[/math]
●    jeżeli  [math]\displaystyle{ 8 \mid m }[/math]  i  [math]\displaystyle{ 8 \nmid ( a - 1 ) }[/math]
●    jeżeli  [math]\displaystyle{ 8 \nmid m }[/math],  ale  [math]\displaystyle{ 4 \mid m }[/math]  i  [math]\displaystyle{ 4 \nmid ( a - 1 ) }[/math]
Dowód

Punkt 1.

Z założenia [math]\displaystyle{ d \mid m }[/math]. Gdyby kongruencja

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

miała rozwiązanie, to również kongruencja

[math]\displaystyle{ x^2 \equiv a \pmod{d} }[/math]

miałaby rozwiązanie, ale jest to niemożliwe, bo założyliśmy, że [math]\displaystyle{ \left( {\small\frac{a}{d}} \right)_{\small{\!\! J}} = - 1 }[/math], co oznacza, że [math]\displaystyle{ a }[/math] jest liczbą niekwadratową modulo [math]\displaystyle{ d }[/math].

Punkty 2. i 3. wynikają wprost z twierdzenia J55.


Przykład J57
Zauważmy, że [math]\displaystyle{ \left( {\small\frac{17}{19}} \right)_{\small{\!\! J}} = \left( {\small\frac{5}{19}} \right)_{\small{\!\! J}} = 1 }[/math] oraz [math]\displaystyle{ \left( {\small\frac{17}{23}} \right)_{\small{\!\! J}} = \left( {\small\frac{5}{23}} \right)_{\small{\!\! J}} = - 1 }[/math]. W tabelach zestawiliśmy kongruencje i ich rozwiązania.


Zadanie J58
Rozwiązać kongruencję, gdzie [math]\displaystyle{ p }[/math] jest liczbą pierwszą nieparzystą

[math]\displaystyle{ x^2 + rx + s \equiv 0 \pmod{p} }[/math]
Rozwiązanie

Ponieważ [math]\displaystyle{ \gcd (2, p) = 1 }[/math], to nie zmniejszając ogólności kongruencję powyższą możemy zapisać w postaci

[math]\displaystyle{ 4 x^2 + 4 rx + 4 s \equiv 0 \pmod{p} }[/math]
[math]\displaystyle{ (2 x + r)^2 - r^2 + 4 s \equiv 0 \pmod{p} }[/math]
[math]\displaystyle{ (2 x + r)^2 \equiv r^2 - 4 s \pmod{p} }[/math]

Widzimy, że rozpatrywana kongruencja ma rozwiązanie wtedy i tylko wtedy, gdy liczba [math]\displaystyle{ r^2 - 4 s }[/math] jest liczbą kwadratową modulo [math]\displaystyle{ p }[/math]. Istotnie, jeśli jest liczbą kwadratową, to istnieje taka liczba [math]\displaystyle{ b }[/math], że [math]\displaystyle{ b^2 \equiv r^2 - 4 s \!\! \pmod{p} }[/math], zatem otrzymujemy

[math]\displaystyle{ (2 x + r)^2 \equiv b^2 \pmod{p} }[/math]
[math]\displaystyle{ 2 x + r \equiv \pm b \pmod{p} }[/math]
[math]\displaystyle{ x \equiv {\small\frac{p + 1}{2}} \cdot (- r \pm b) \pmod{p} }[/math]

Jeśli [math]\displaystyle{ r^2 - 4 s }[/math] nie jest liczbą kwadratową modulo [math]\displaystyle{ p }[/math], to kongruencja

[math]\displaystyle{ (2 x + r)^2 \equiv r^2 - 4 s \pmod{p} }[/math]

nie ma rozwiązania. Wynika stąd, że równoważna jej kongruencja

[math]\displaystyle{ x^2 + rx + s \equiv 0 \pmod{p} }[/math]

również nie ma rozwiązania.


Zadanie J59
Rozwiązać kongruencję

[math]\displaystyle{ 5 x^2 + 6 x + 8 \equiv 0 \pmod{19} }[/math]
Rozwiązanie

Rozwiązywanie kongruencji w przypadku konkretnych wartości liczb [math]\displaystyle{ r, s }[/math] jest łatwiejsze niż w przypadku ogólnym. Mnożąc obie strony kongruencji przez [math]\displaystyle{ 4 }[/math], otrzymujemy

[math]\displaystyle{ x^2 + 24 x + 32 \equiv 0 \pmod{19} }[/math]
[math]\displaystyle{ x^2 + 24 x + 13 \equiv 0 \pmod{19} }[/math]

Celowo zostawiliśmy parzysty współczynnik przy [math]\displaystyle{ x }[/math]. Gdyby był nieparzysty, to zawsze możemy dodać do niego nieparzysty moduł.

[math]\displaystyle{ (x + 12)^2 - 144 + 13 \equiv 0 \pmod{19} }[/math]
[math]\displaystyle{ (x + 12)^2 + 2 \equiv 0 \pmod{19} }[/math]
[math]\displaystyle{ (x + 12)^2 \equiv - 2 \pmod{19} }[/math]
[math]\displaystyle{ (x + 12)^2 \equiv 6^2 \pmod{19} }[/math]
[math]\displaystyle{ x + 12 \equiv \pm 6 \pmod{19} }[/math]

Otrzymujemy: [math]\displaystyle{ x \equiv 1 \!\! \pmod{19} }[/math] lub [math]\displaystyle{ x \equiv 13 \!\! \pmod{19} }[/math].


Nieco spostrzegawczości pozwala znaleźć rozwiązanie kongruencji natychmiast. W naszym przypadku wystarczyło zauważyć, że

[math]\displaystyle{ x^2 + 24 x + 13 \equiv x^2 - 14 x + 13 \equiv (x - 1) (x - 13) \equiv 0 \pmod{19} }[/math]








Przypisy

  1. Wikipedia, Chińskie twierdzenie o resztach, (Wiki-pl), (Wiki-en)
  2. CRT to często używany skrót od angielskiej nazwy twierdzenia: Chinese remainder theorem
  3. Wikipedia, Logical equivalence, (Wiki-en)
  4. Wikipedia, Symbol Legendre’a, (Wiki-pl), (Wiki-en)
  5. Wikipedia, Symbol Jacobiego, (Wiki-pl), (Wiki-en)