Matematyka dyskretna 1/Wykład 10: Teoria liczb: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Pi (dyskusja | edycje)
m Zastępowanie tekstu – „,↵</math>” na „</math>,”
 
(Nie pokazano 29 wersji utworzonych przez 4 użytkowników)
Linia 10: Linia 10:
Do dwudziestego wieku powszechną była opinia,  
Do dwudziestego wieku powszechną była opinia,  
iż teoria ta nie ma żadnego zastosowania.  
iż teoria ta nie ma żadnego zastosowania.  
Jednak dzięki wielkiemu rozwojowi kryptografii --  
Jednak dzięki wielkiemu rozwojowi kryptografii -  
nauki zajmującej się układaniem i łamaniem szyfrów --  
nauki zajmującej się układaniem i łamaniem szyfrów -  
pogląd ten musiał zostać zweryfikowany.
pogląd ten musiał zostać zweryfikowany.


W dwu kolejnych wykładach poznamy podstawowe pojęcia i klasyczne twierdzenia teorii liczb  
W dwu kolejnych wykładach poznamy podstawowe pojęcia i klasyczne twierdzenia teorii liczb  
-- niektóre pochodzące jeszcze z czasów starożytnych.  
- niektóre pochodzące jeszcze z czasów starożytnych.  
Zainteresowanych zachęcamy do rozszerzenia swej wiedzy  
Zainteresowanych zachęcamy do rozszerzenia swej wiedzy  
w kursie Matematyka Dyskretna 2,  
w kursie [[Matematyka Dyskretna 2|Matematyka Dyskretna 2]],  
gdzie przedstawiony jest system kryptograficzny RSA,   
gdzie przedstawiony jest system kryptograficzny RSA,   
oparty na tych podstawowych faktach z teorii liczb.
oparty na tych podstawowych faktach z teorii liczb.
Linia 56: Linia 56:
spełniające:
spełniające:


<center><math>a=bq+r\qquad\textrm{i}\qquad 0\leq r<b.
</math></center>


Resztę <math>r</math> z dzielenia <math>a</math> przez <math>b</math> zapisujemy też jako: '''<math>a \mbox{ {\sf mod} } b </math>'''.
<center><math>a=bq+r\qquad\text{i}\qquad 0\leq r<b</math></center>
 
 
Resztę <math>r</math> z dzielenia <math>a</math> przez <math>b</math> zapisujemy też jako: '''<math>a \mathsf{ mod} b</math>'''.


{{przyklad|||
{{przyklad|||
<math>47 \mbox{ {\sf mod} } 9 =2</math>, <math>1823 \mbox{ {\sf mod} } 2 =1</math>, <math>32 \mbox{ {\sf mod} } 43 =32</math>, <math>111 \mbox{ {\sf mod} } 13 =7</math>, <math>-3 \mbox{ {\sf mod} } 7 =4</math>. W pewnych sytuacjach reszta równa jest <math>0</math>, np. <math>-22=-2\cdot 11+0</math>.
<math>47 \mathsf{ mod} 9 =2</math>, <math>1823 \mathsf{ mod} 2 =1</math>, <math>32 \mathsf{ mod} 43 =32</math>, <math>111 \mathsf{ mod} 13 =7</math>, <math>-3 \mathsf{ mod} 7 =4</math>. W pewnych sytuacjach reszta równa jest <math>0</math>, np. <math>-22=-2\cdot 11+0</math>.
}}
}}


<math>b</math> '''dzieli''' <math>a</math> (lub <math>a</math> jest podzielne przez <math>b</math>), co zapisujemy <math>b|a</math>, jeśli istnieje <math>q</math> takie, że <math>b=aq</math>. W takim wypadku mówimy też, że <math>b</math> '''jest dzielnikiem''' <math>a</math> lub, że <math>a</math> '''jest wielokrotnością''' <math>b</math>. Innymi słowy, jeśli <math>b</math> dzieli <math>a</math> to reszta z dzielenia <math>a</math> przez <math>b</math> równa jest <math>0</math> tzn. <math>a \mbox{ {\sf mod} } b =0</math>.
<math>b</math> '''dzieli''' <math>a</math> (lub <math>a</math> jest podzielne przez <math>b</math>), co zapisujemy <math>b|a</math>, jeśli istnieje <math>q</math> takie, że <math>b=aq</math>. W takim wypadku mówimy też, że <math>b</math> '''jest dzielnikiem''' <math>a</math> lub, że <math>a</math> '''jest wielokrotnością''' <math>b</math>. Innymi słowy, jeśli <math>b</math> dzieli <math>a</math> to reszta z dzielenia <math>a</math> przez <math>b</math> równa jest <math>0</math> tzn. <math>a \mathsf{ mod} b =0</math>.


{{obserwacja|10.1||
{{obserwacja|10.1|obs 10.1|
Dla dowolnych <math>a,b,c</math> zachodzi:
Dla dowolnych <math>a,b,c</math> zachodzi:
* jeśli <math>a|b</math> to <math>a|bc</math>,
* jeśli <math>a|b</math> to <math>a|bc</math>,
* jeśli <math>a|b</math> i <math>b|c</math> to <math>a|c</math>,
* jeśli <math>a|b</math> i <math>b|c</math> to <math>a|c</math>,
* jeśli <math>a|b</math>, <math>a|c</math> to <math>a|(b+c)</math>.
* jeśli <math>a|b</math>, <math>a|c</math> to <math>a|(b+c)</math>.


Linia 90: Linia 93:


'''Największy wspólny dzielnik''' liczb <math>a</math> i <math>b</math>  
'''Największy wspólny dzielnik''' liczb <math>a</math> i <math>b</math>  
(zapisywany przez <math>\mbox{\sf NWD}(a,b)</math>),  
(zapisywany przez <math>\mathsf{ NWD}(a,b)</math>),  
gdzie chociaż jedna z liczb <math>a,b</math> jest różna od <math>0</math>,  
gdzie chociaż jedna z liczb <math>a,b</math> jest różna od <math>0</math>,  
to największa liczba <math>d</math> taka, że <math>d|a</math> i <math>d|b</math>.  
to największa liczba <math>d</math> taka, że <math>d|a</math> i <math>d|b</math>.  
Oczywiście, <math>1\leqslant\mbox{\sf NWD}(a,b)\leq \min(\left\verta\right\vert,\left\vertb\right\vert)</math>.
Oczywiście, <math>1 \leqslant\mathsf{ NWD}(a,b)\leq \min(\left\vert a\right\vert,\left\vert b\right\vert)</math>.


{{przyklad|||
{{przyklad|||
<math>\mbox{\sf NWD}(30,75)=15</math>, <math>\mbox{\sf NWD}(10,3)=1</math>, <math>\mbox{\sf NWD}(2,8)=2</math>.
<math>\mathsf{ NWD}(30,75)=15</math>, <math>\mathsf{ NWD}(10,3)=1</math>, <math>\mathsf{ NWD}(2,8)=2</math>.
}}
}}


Linia 104: Linia 107:
dodatnich liczb całkowitych.  
dodatnich liczb całkowitych.  
Warto tu wspomnieć, iż jest to jeden z najstarszych znanych algorytmów.  
Warto tu wspomnieć, iż jest to jeden z najstarszych znanych algorytmów.  
Euklides zamieścił go ok. 300 roku p.n.e. w ''Elementach'' --  
Euklides zamieścił go ok. 300 roku p.n.e. w ''Elementach'' -  
jednym z najsłynniejszych dzieł naukowych ludzkości.  
jednym z najsłynniejszych dzieł naukowych ludzkości.  
Jednak sam algorytm prawie na pewno znał już Eudoksos z Knidos ok. 50 lat wcześniej.
Jednak sam algorytm prawie na pewno znał już Eudoksos z Knidos ok. 50 lat wcześniej.
Linia 114: Linia 117:


{{przyklad|||
{{przyklad|||
Przebieg obliczenia <math>\mbox{\sf NWD}(1029,1071)</math>:
Przebieg obliczenia <math>\mathsf{ NWD}(1029,1071)</math>:
 


<center><math>\begin{array} {llll}
<center><math>\begin{array} {llll}
Linia 124: Linia 128:
\end{array}  
\end{array}  
</math></center>
</math></center>


Zgodnie z instrukcją (4) algorytm zwraca <math>a=21</math>.
Zgodnie z instrukcją (4) algorytm zwraca <math>a=21</math>.
}}
}}


<div class="thumb tright"><div style="width:520px;height:230px;">
[[File:Applet1.svg|500x211px|thumb|right|Applet1]]
<flash>file=Applet1.swf|width=500|height=210</flash>
</div></div>


{{dowod|||
{{dowod|||
Dla dowódu poprawności algorytmu Euklidesa ustalmy dwie liczy naturalne <math>a,b>0</math>.  
Dla dowódu poprawności algorytmu Euklidesa ustalmy dwie liczy naturalne <math>a,b>0</math>.  
Jeśli <math>a<b</math> to podany algorytm odwróci ich porządek przy pierwszym wykonaniu kroku (3),  
Jeśli <math>a<b</math> to podany algorytm odwróci ich porządek przy pierwszym wykonaniu kroku (3),  
gdyż w tym przypadku <math>a \mbox{ {\sf mod} } b =a</math>.  
gdyż w tym przypadku <math>a \mathsf{ mod} b =a</math>.  
Zauważmy, że w każdym następnym kroku <math>a>b>r</math>,  
Zauważmy, że w każdym następnym kroku <math>a>b>r</math>,  
ponieważ reszta z dzielenia <math>a</math> przez <math>b</math> leży w zbiorze <math>{\left\{ {0,\ldots,b-1} \right\} }</math>.  
ponieważ reszta z dzielenia <math>a</math> przez <math>b</math> leży w zbiorze <math>{\left\{ {0,\ldots,b-1} \right\} }</math>.  
Linia 143: Linia 146:


Pozostaje sprawdzić, czy algorytm Euklidesa zwraca właściwą odpowiedź.  
Pozostaje sprawdzić, czy algorytm Euklidesa zwraca właściwą odpowiedź.  
Niech <math>r=a \mbox{ {\sf mod} } b </math> tzn. <math>r=a-bq</math> dla pewnego <math>q</math>.  
Niech <math>r=a \mathsf{ mod} b</math> tzn. <math>r=a-bq</math> dla pewnego <math>q</math>.  
Wszystkie dzielniki <math>a</math> i <math>b</math> dzielą prawą stronę ostatniej równości,  
Wszystkie dzielniki <math>a</math> i <math>b</math> dzielą prawą stronę ostatniej równości,  
a więc dzielą też <math>r</math>, co implikuje <math>\mbox{\sf NWD}(a,b)=\mbox{\sf NWD}(b,r)</math>.  
a więc dzielą też <math>r</math>, co implikuje <math>\mathsf{ NWD}(a,b)=\mathsf{ NWD}(b,r)</math>.  
Dowodzi to, iż wszystkie pary rozważane przez algorytm mają te same dzielniki,  
Dowodzi to, iż wszystkie pary rozważane przez algorytm mają te same dzielniki,  
a więc ten sam <math>\mbox{\sf NWD }</math>.
a więc ten sam <math>\mathsf{ NWD }</math>.
}}
}}


===Rozszerzenie algorytmu Euklidesa.===
===Rozszerzenie algorytmu Euklidesa.===


Poza znajdowaniem  NWD {} dwóch podanych liczb <math>a,b>0</math>  
Poza znajdowaniem  NWD dwóch podanych liczb <math>a,b>0</math>  
algorytm Euklidesa można zastosować do wskazania dwu dodatkowych liczb  
algorytm Euklidesa można zastosować do wskazania dwu dodatkowych liczb  
<math>x,y\in\mathbb{Z}</math> takich, że
<math>x,y\in\mathbb{Z}</math> takich, że


<center><math>ax+by=\mbox{\sf NWD}(a,b).
 
</math></center>
<center><math>ax+by=\mathsf{ NWD}(a,b)</math></center>
 


Już sam fakt, że istnieją takie liczby <math>x,y</math> to obserwacja,  
Już sam fakt, że istnieją takie liczby <math>x,y</math> to obserwacja,  
Linia 170: Linia 174:
natomiast <math>r_2\ldots,r_n,r_{n+1}</math> będą kolejnymi resztami wygenerowanymi  
natomiast <math>r_2\ldots,r_n,r_{n+1}</math> będą kolejnymi resztami wygenerowanymi  
przez algorytm Euklidesa, przy czym <math>r_{n+1}=0</math>.  
przez algorytm Euklidesa, przy czym <math>r_{n+1}=0</math>.  
Wtedy wiemy, że <math>r_n=\mbox{\sf NWD}(a,b)</math> oraz
Wtedy wiemy, że <math>r_n=\mathsf{ NWD}(a,b)</math> oraz


<center><math>\aligned {}
 
<center><math>\begin{align} {}
r_{n-1}&=q_{n-1}\cdot r_n,\\
r_{n-1}&=q_{n-1}\cdot r_n,\\
r_{n-2}&=q_{n-2}\cdot r_{n-1} + r_n,\\
r_{n-2}&=q_{n-2}\cdot r_{n-1} + r_n,\\
Linia 179: Linia 184:
r_1&=q_1\cdot r_2+r_3,\\
r_1&=q_1\cdot r_2+r_3,\\
r_0&=q_0\cdot r_1+r_2,
r_0&=q_0\cdot r_1+r_2,
\endaligned</math></center>
\end{align}</math></center>
 


dla pewnych <math>q_0,q_1,\ldots,q_{n-1}</math>.
dla pewnych <math>q_0,q_1,\ldots,q_{n-1}</math>.
Mamy zatem <math>r_{n-2}-q_{n-2}\cdot r_{n-1}=\mbox{\sf NWD}(a,b)</math>.  
Mamy zatem <math>r_{n-2}-q_{n-2}\cdot r_{n-1}=\mathsf{ NWD}(a,b)</math>.  
Załóżmy indukcyjnie, dla <math>0<i\leq n-2</math>,  
Załóżmy indukcyjnie, dla <math>0<i\leq n-2</math>,  
że istnieją <math>x,y\in\mathbb{Z}</math> takie, że <math>r_{i}\cdot x+r_{i+1}\cdot y=\mbox{\sf NWD}(a,b)</math>.  
że istnieją <math>x,y\in\mathbb{Z}</math> takie, że <math>r_{i}\cdot x+r_{i+1}\cdot y=\mathsf{ NWD}(a,b)</math>.  
Ponieważ <math>r_{i+1}=r_{i-1}+q_{i-1}\cdot r_i</math> otrzymujemy:  
Ponieważ <math>r_{i+1}=r_{i-1}+q_{i-1}\cdot r_i</math> otrzymujemy:  


<center><math>\aligned \mbox{\sf NWD}(a,b)&=r_{i}\cdot x+r_{i+1}\cdot y\\
 
<center><math>\begin{align} \mathsf{ NWD}(a,b)&=r_{i}\cdot x+r_{i+1}\cdot y\\
&=r_{i}\cdot x + (r_{i-1}+q_{i-1}\cdot r_i)\cdot y\\
&=r_{i}\cdot x + (r_{i-1}+q_{i-1}\cdot r_i)\cdot y\\
&=r_{i-1}\cdot y+r_{i}\cdot(x+q_{i-1}\cdot y).
&=r_{i-1}\cdot y+r_{i}\cdot(x+q_{i-1}\cdot y).
\endaligned</math></center>
\end{align}</math></center>
 


A więc możemy zejść z liczbą <math>i</math> do <math>i=0</math>, co daje  
A więc możemy zejść z liczbą <math>i</math> do <math>i=0</math>, co daje  
pożądane przedstawienie <math>\mbox{\sf NWD}(a,b)</math> jako <math>r_0\cdot x + r_1\cdot y =ax+by</math>.
pożądane przedstawienie <math>\mathsf{ NWD}(a,b)</math> jako <math>r_0\cdot x + r_1\cdot y =ax+by</math>.
}}
}}


Linia 203: Linia 211:
Pokażemy, że
Pokażemy, że


<center><math>r_{j+2}<\frac{1}{2}r_j.
 
</math></center>
<center><math>r_{j+2}<\frac{1}{2}r_j</math></center>
 


Jeśli <math>r_{j+1}\leq \frac{1}{2}r_j</math>,  
Jeśli <math>r_{j+1}\leq \frac{1}{2}r_j</math>,  
Linia 216: Linia 225:
W każdym kroku przeprowadzane jest dzielenie liczb długości <math>O(\lg{a})</math>,  
W każdym kroku przeprowadzane jest dzielenie liczb długości <math>O(\lg{a})</math>,  
a więc <math>O(\lg^2{a})</math> operacji bitowych.  
a więc <math>O(\lg^2{a})</math> operacji bitowych.  
To oznacza, iż do policzenia <math>\mbox{\sf NWD}(a,b)</math> (<math>a\geq b</math>)  
To oznacza, iż do policzenia <math>\mathsf{ NWD}(a,b)</math> (<math>a\geq b</math>)  
algorytmem Euklidesa wystarcza <math>O(\lg^3{a})</math> operacji bitowych.
algorytmem Euklidesa wystarcza <math>O(\lg^3{a})</math> operacji bitowych.


Aby policzyć współczynniki <math>x</math>, <math>y</math> takie, że <math>ax+by=\mbox{\sf NWD}(a,b)</math>,  
Aby policzyć współczynniki <math>x</math>, <math>y</math> takie, że <math>ax+by=\mathsf{ NWD}(a,b)</math>,  
zgodnie z przedstawionym dowodem,  
zgodnie z przedstawionym dowodem,  
należy przedstawić <math>\mbox{\sf NWD}(a,b)</math> jako kombinację <math>r_{n-1}</math> i <math>r_{n-2}</math>,  
należy przedstawić <math>\mathsf{ NWD}(a,b)</math> jako kombinację <math>r_{n-1}</math> i <math>r_{n-2}</math>,  
a później pozbyć się kolejnych <math>r_i</math>  
a później pozbyć się kolejnych <math>r_i</math>  
(poczynając od <math>r_{n-1}</math>) wprowadzając <math>r_{i-2}</math>.  
(poczynając od <math>r_{n-1}</math>) wprowadzając <math>r_{i-2}</math>.  
Linia 231: Linia 240:
Działanie rozszerzonego algorytmu Euklidesa dla <math>a=1547</math> i <math>b=560</math>.
Działanie rozszerzonego algorytmu Euklidesa dla <math>a=1547</math> i <math>b=560</math>.


<center><math>\aligned 1547&=2\cdot560+427\\
 
<center><math>\begin{align} 1547&=2\cdot560+427\\
560&=1\cdot427+133\\
560&=1\cdot427+133\\
427&=3\cdot133+28\\
427&=3\cdot133+28\\
Linia 237: Linia 247:
28&=1\cdot21+7\\
28&=1\cdot21+7\\
21&=3\cdot7+0.
21&=3\cdot7+0.
\endaligned</math></center>
\end{align}</math></center>
 
 
A więc <math>\mathsf{ NWD}(1547,560)=7</math>. Aby wyrazić <math>7</math> jako kombinację danych wejściowych liczymy:


A więc <math>\mbox{\sf NWD}(1547,560)=7</math>. Aby wyrazić <math>7</math> jako kombinację danych wejściowych liczymy:


<center><math>\aligned 7&=\textbf{28}-1\cdot\textbf{21}=28-1\cdot(133-4\cdot28)\\
<center><math>\begin{align} 7&=\textbf{28}-1\cdot\textbf{21}=28-1\cdot(133-4\cdot28)\\
&=-1\cdot\textbf{133}+5\cdot\textbf{28}=-1\cdot133+5\cdot(427-3\cdot133)\\
&=-1\cdot\textbf{133}+5\cdot\textbf{28}=-1\cdot133+5\cdot(427-3\cdot133)\\
&=5\cdot\textbf{427}-16\cdot\textbf{133}=5\cdot427-16\cdot(560-1\cdot427)\\
&=5\cdot\textbf{427}-16\cdot\textbf{133}=5\cdot427-16\cdot(560-1\cdot427)\\
&=-16\cdot\textbf{560}+21\cdot\textbf{427}=-16\cdot560+21\cdot(1547-2\cdot560)\\
&=-16\cdot\textbf{560}+21\cdot\textbf{427}=-16\cdot560+21\cdot(1547-2\cdot560)\\
&=21\cdot\textbf{1547}-58\cdot\textbf{560}.
&=21\cdot\textbf{1547}-58\cdot\textbf{560}.
\endaligned</math></center>
\end{align}</math></center>
 


}}
}}


<center>
<center>
<div class="thumb"><div style="width:520px;height:420px;">
[[File:Applet2.svg|500x400px|thumb|center|]]
<flash>file=Applet2.swf|width=500|height=400</flash>
</div></div>
</center>
</center>


Linia 267: Linia 278:
Oto lista wszystkich liczb pierwszych mniejszych od <math>100</math>:
Oto lista wszystkich liczb pierwszych mniejszych od <math>100</math>:


<center><math>2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97.
 
</math></center>
<center><math>2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97</math></center>
 


}}
}}
Linia 276: Linia 288:


'''Liczby względnie pierwsze'''  
'''Liczby względnie pierwsze'''  
to takie liczby <math>a</math> i <math>b</math>, dla których <math>\mbox{\sf NWD}(a,b)=1</math>,  
to takie liczby <math>a</math> i <math>b</math>, dla których <math>\mathsf{ NWD}(a,b)=1</math>,  
co zapisujemy inaczej jako <math>a\perp b</math>.
co zapisujemy inaczej jako <math>a\perp b</math>.


{{przyklad|||
{{przyklad|||


* <math>10\perp 3</math> bo <math>\mbox{\sf NWD}(10,3)=1</math>,
* <math>10\perp 3</math> bo <math>\mathsf{ NWD}(10,3)=1</math>,
* <math>12\not\perp 3</math> bo <math>\mbox{\sf NWD}(12,3)=3</math>,
* <math>12\not\perp 3</math> bo <math>\mathsf{ NWD}(12,3)=3</math>,
* <math>7\perp 15</math> bo <math>\mbox{\sf NWD}(7,15)=1</math>.
* <math>7\perp 15</math> bo <math>\mathsf{ NWD}(7,15)=1</math>.


}}
}}
Linia 289: Linia 301:
Wspomniane ''Elementy'' Euklidesa zawierają słynny lemat:
Wspomniane ''Elementy'' Euklidesa zawierają słynny lemat:


{{lemat|Lemat Euklidesa||
{{lemat|10.2 [Lemat Euklidesa]|lem 10.2|
 
Jeśli <math>n|ab</math> i <math>n\perp a</math>, to <math>n|b</math>.
Jeśli <math>n|ab</math> i <math>n\perp a</math>, to <math>n|b</math>.
}}
}}


{{dowod|||
{{dowod|||
Ponieważ <math>\mbox{\sf NWD}(a,n)=1</math>, to istnieją <math>x,y</math> takie, że <math>xa+yn=1</math>.  
Ponieważ <math>\mathsf{ NWD}(a,n)=1</math>, to istnieją <math>x,y</math> takie, że <math>xa+yn=1</math>.  
Mnożąc obie strony równości przez <math>b</math> otrzymujemy:  
Mnożąc obie strony równości przez <math>b</math> otrzymujemy:  


<center><math>xab+ynb=b.
 
</math></center>
<center><math>xab+ynb=b</math></center>
 


Z założenia wiemy, iż <math>n</math> dzieli lewą stronę powyższej równości.  
Z założenia wiemy, iż <math>n</math> dzieli lewą stronę powyższej równości.  
Linia 305: Linia 317:
}}
}}


{{obserwacja|Rozkład na iloczyn liczb pierwszych||
{{obserwacja|10.3 [Rozkład na iloczyn liczb pierwszych]|obs 10.3|
 
Każdą liczbę <math>n>1</math> można przedstawić jako iloczyn liczb pierwszych.
Każdą liczbę <math>n>1</math> można przedstawić jako iloczyn liczb pierwszych.
}}
}}
Linia 314: Linia 325:
aż wszystkie będą liczbami pierwszymi, na przykład
aż wszystkie będą liczbami pierwszymi, na przykład


<center><math>168=28\cdot6=(4\cdot7)\cdot(2\cdot3)=(2\cdot2)\cdot7\cdot2\cdot3.
 
</math></center>
<center><math>168=28\cdot6=(4\cdot7)\cdot(2\cdot3)=(2\cdot2)\cdot7\cdot2\cdot3</math></center>
 


Dla formalnego dowodu załóżmy niewprost,  
Dla formalnego dowodu załóżmy niewprost,  
Linia 337: Linia 349:
jednak pierwszy, pełny i poprawny dowód przedstawił Carl Friedrich Gauss.
jednak pierwszy, pełny i poprawny dowód przedstawił Carl Friedrich Gauss.


{{twierdzenie|Fundamentalne Twierdzenie Arytmetyki||
{{twierdzenie|10.4 [Fundamentalne Twierdzenie Arytmetyki]|tw 10.4|
 
Każda liczba naturalna <math>n>1</math> ma jednoznaczny  
Każda liczba naturalna <math>n>1</math> ma jednoznaczny  
(z dokładnością do kolejności liczb w iloczynie) rozkład na iloczyn liczb pierwszych.
(z dokładnością do kolejności liczb w iloczynie) rozkład na iloczyn liczb pierwszych.
Linia 355: Linia 366:
Liczba pierwsza <math>p_1</math> dzieli pierwszy iloczyn, a więc też dzieli i drugi:  
Liczba pierwsza <math>p_1</math> dzieli pierwszy iloczyn, a więc też dzieli i drugi:  


<center><math>p_1|q_1\ldots q_m.
 
</math></center>
<center><math>p_1|q_1\ldots q_m</math></center>
 


Zauważmy, że  
Zauważmy, że  


<center><math>p_1\perp q_1,
 
</math></center>
<center><math>p_1\perp q_1</math>,</center>
 


gdyż są to dwie, różne liczby pierwsze.  
gdyż są to dwie, różne liczby pierwsze.  
Na mocy Lematu Euklidesa otrzymujemy,  
Na mocy [[#lem 10.2|Lematu Euklidesa]] otrzymujemy,  
iż <math>p_1|q_2\ldots q_m</math>.  
iż <math>p_1|q_2\ldots q_m</math>.  
Kolejno możemy wyeliminować pozostałe liczby <math>q_i</math> z prawego iloczynu  
Kolejno możemy wyeliminować pozostałe liczby <math>q_i</math> z prawego iloczynu  
Linia 378: Linia 391:
Bez straty ogólności niech <math>p_1<q_1</math>. Wtedy istnieje <math>d,r\in\mathbb{Z}</math> takie, że
Bez straty ogólności niech <math>p_1<q_1</math>. Wtedy istnieje <math>d,r\in\mathbb{Z}</math> takie, że


<center><math>q_1/p_1=d+r/p_1,
 
</math></center>
<center><math>q_1/p_1=d+r/p_1</math>,</center>
 


gdzie <math>0<r<p_1<q_1</math> (<math>r</math> nie może być równe <math>0</math>, gdyż oznaczałoby to iż <math>p_1|q_1</math>). Wymnażając obie strony równości przez <math>q_2\ldots q_m</math> otrzymujemy
gdzie <math>0<r<p_1<q_1</math> (<math>r</math> nie może być równe <math>0</math>, gdyż oznaczałoby to iż <math>p_1|q_1</math>). Wymnażając obie strony równości przez <math>q_2\ldots q_m</math> otrzymujemy


<center><math>p_2\ldots p_k=dq_2\ldots q_m+rq_2\ldots q_m/p_1.
 
</math></center>
<center><math>p_2\ldots p_k=dq_2\ldots q_m+rq_2\ldots q_m/p_1</math></center>
 


Drugi składnik w prawej stronie tej równości musi być zatem liczbą naturalną.
Drugi składnik w prawej stronie tej równości musi być zatem liczbą naturalną.
Oznaczając ją przez <math>x</math> mamy więc
Oznaczając ją przez <math>x</math> mamy więc


<center><math>xp_1=rq_2\ldots q_m.
 
</math></center>
<center><math>xp_1=rq_2\ldots q_m</math></center>
 


Wartość obu stron powyższej równości jest mniejsza od <math>n</math>, gdyż <math>r<q_1</math>.  
Wartość obu stron powyższej równości jest mniejsza od <math>n</math>, gdyż <math>r<q_1</math>.  
Linia 427: Linia 443:
w sposób systematyczny, wszystkie jej dzielniki.
w sposób systematyczny, wszystkie jej dzielniki.


{{obserwacja|||
{{obserwacja|10.5|obs 10.5|
 
Jeśli <math>n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math> jest rozkładem liczby <math>n</math>  
Jeśli <math>n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math> jest rozkładem liczby <math>n</math>  
na iloczyn liczb pierwszych, to każdy jej dzielnik <math>d|n</math>  
na iloczyn liczb pierwszych, to każdy jej dzielnik <math>d|n</math>  
Linia 441: Linia 456:
Oczywiście <math>p|n</math>, bo <math>d|n</math>.  
Oczywiście <math>p|n</math>, bo <math>d|n</math>.  
Ponieważ <math>p</math> i <math>p_1</math> są dwiema różnymi liczbami pierwszymi,  
Ponieważ <math>p</math> i <math>p_1</math> są dwiema różnymi liczbami pierwszymi,  
to na mocy Lematu Euklidesa  
to na mocy [[#lem 10.2|Lematu Euklidesa]]
otrzymujemy <math>p|p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math>.  
otrzymujemy <math>p|p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math>.  
W podobny sposób możemy wyeliminować kolejno liczby <math>p_2,\ldots,p_k</math>  
W podobny sposób możemy wyeliminować kolejno liczby <math>p_2,\ldots,p_k</math>  
Linia 452: Linia 467:
Wtedy  
Wtedy  


<center><math>\frac{d}{p_i^{\alpha_{i}}} \mbox{ \ dzieli \ } \frac{n}{p_i^{\alpha_{i}}},
 
</math></center>
<center><math>\frac{d}{p_i^{\alpha_{i}}} \mbox{ dzieli } \frac{n}{p_i^{\alpha_{i}}}</math>,</center>
 


przy czym liczba <math>\frac{d}{p_i^{\alpha_{i}}}</math>  
przy czym liczba <math>\frac{d}{p_i^{\alpha_{i}}}</math>  
Linia 465: Linia 481:
<math>0\leqslant\beta_i\leqslant\alpha_i</math> jest dokładnie  
<math>0\leqslant\beta_i\leqslant\alpha_i</math> jest dokładnie  
<math>(\alpha_1+1)\cdot(\alpha_2+1)\cdot\ldots\cdot(\alpha_k+1)</math>
<math>(\alpha_1+1)\cdot(\alpha_2+1)\cdot\ldots\cdot(\alpha_k+1)</math>
z Obserwacji [[##dzielniki|Uzupelnic dzielniki|]]  dostajemy natychmiast:  
z [[#obs_10.5|Obserwacji 10.5]]  dostajemy natychmiast:  


{{wniosek|||
{{wniosek|10.6|wn 10.6|
Jeśli <math>n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math>  
Jeśli <math>n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math>  
jest rozkładem liczby <math>n</math> na iloczyn liczb pierwszych, to liczba <math>n</math>  
jest rozkładem liczby <math>n</math> na iloczyn liczb pierwszych, to liczba <math>n</math>  
Linia 500: Linia 516:
}}
}}


Innym natychmiastowym wnioskiem z Obserwacji [[##dzielniki|Uzupelnic dzielniki|]] jest:  
Innym natychmiastowym wnioskiem z [[#obs_10.5|Obserwacji 10.5]] jest:  


{{wniosek|||
{{wniosek|10.7|wn 10.7|
Dla <math>a,b,c\in\mathbb{N}</math> jeśli <math>a|c</math>, <math>b|c</math> i <math>a\perp b</math>, to <math>ab|c</math>.
Dla <math>a,b,c\in\mathbb{N}</math> jeśli <math>a|c</math>, <math>b|c</math> i <math>a\perp b</math>, to <math>ab|c</math>.
}}
}}


Mając dany rozkład liczb <math>a</math> i <math>b</math> możemy błyskawicznie policzyć <math>\mbox{\sf NWD}(a,b)</math>.
Mając dany rozkład liczb <math>a</math> i <math>b</math> możemy błyskawicznie policzyć <math>\mathsf{ NWD}(a,b)</math>.


{{obserwacja|||
{{obserwacja|10.8|obs 10.8|
Jeśli <math>a,b>0</math>,  
Jeśli <math>a,b>0</math>,  
<math>a=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math> i   
<math>a=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math> i   
Linia 514: Linia 530:
gdzie <math>\alpha_i, \beta_i \geq 0</math>, to
gdzie <math>\alpha_i, \beta_i \geq 0</math>, to


<center><math>\mbox{\sf NWD}(a,b)=p_1^{\min(\alpha_1,\beta_1)}\cdot \ldots\cdot p_k^{\min(\alpha_k,\beta_k)}.
 
</math></center>
<center><math>\mathsf{ NWD}(a,b)=p_1^{\min(\alpha_1,\beta_1)}\cdot \ldots\cdot p_k^{\min(\alpha_k,\beta_k)}</math></center>
 


}}
}}
Linia 529: Linia 546:


Oczywiście mając rozkłady liczb <math>a,b</math> na czynniki pierwsze  
Oczywiście mając rozkłady liczb <math>a,b</math> na czynniki pierwsze  
łatwo jest już policzyć <math>\mbox{\sf NWD}(a,b)</math>.  
łatwo jest już policzyć <math>\mathsf{ NWD}(a,b)</math>.  
Jak jednak odnotowaliśmy uzyskanie takich rozkładów nie jest łatwe.
Jak jednak odnotowaliśmy uzyskanie takich rozkładów nie jest łatwe.
Dzięki algorytmowi Euklidesa potrafimy jednak (efektywnie) znaleźć  NWD   
Dzięki algorytmowi Euklidesa potrafimy jednak (efektywnie) znaleźć  NWD   
Linia 538: Linia 555:


'''Najmniejsza wspólna wielokrotność''' dwu liczb <math>a,b>0</math>  
'''Najmniejsza wspólna wielokrotność''' dwu liczb <math>a,b>0</math>  
(oznaczana przez <math>\mbox{\sf NWW}(a,b)</math>)  
(oznaczana przez <math>\mathsf{ NWW}(a,b)</math>)  
to najmniejsza liczba dodatnia <math>w</math> taka, że <math>a|w</math> i <math>b|w</math>.  
to najmniejsza liczba dodatnia <math>w</math> taka, że <math>a|w</math> i <math>b|w</math>.  


Znając rozkłady dwu liczb możemy, analogicznie do  NWD , wyznaczyć ich  NWW.
Znając rozkłady dwu liczb możemy, analogicznie do  NWD , wyznaczyć ich  NWW.


{{obserwacja|||
{{obserwacja|10.9|obs 10.9|
Jeśli <math>a,b>0</math>,  
Jeśli <math>a,b>0</math>,  
<math>a=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math> i   
<math>a=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k}</math> i   
Linia 549: Linia 566:
gdzie <math>\alpha_i, \beta_i \geq 0</math>, to
gdzie <math>\alpha_i, \beta_i \geq 0</math>, to


<center><math>\mbox{\sf NWW}(a,b)=p_1^{\max(\alpha_1,\beta_1)}\cdot \ldots\cdot p_k^{\max(\alpha_k,\beta_k)}.
 
</math></center>
<center><math>\mathsf{ NWW}(a,b)=p_1^{\max(\alpha_1,\beta_1)}\cdot \ldots\cdot p_k^{\max(\alpha_k,\beta_k)}</math></center>
 


}}
}}
Linia 556: Linia 574:
Na podstawie ostatnich dwu obserwacji dostajemy natychmiast:
Na podstawie ostatnich dwu obserwacji dostajemy natychmiast:


{{wniosek|||
{{wniosek|10.10|wn 10.10|


<center><math>\mbox{\sf NWD}(a,b)\cdot\mbox{\sf NWW}(a,b)=ab.
<center><math>\mathsf{ NWD}(a,b)\cdot\mathsf{ NWW}(a,b)=ab</math></center>
</math></center>


}}
}}
Linia 565: Linia 582:
Wniosek ten można wykorzystać do szybkiego liczenia  NWD  dwu liczb
Wniosek ten można wykorzystać do szybkiego liczenia  NWD  dwu liczb
bez znajomości ich rozkładów na czynniki pierwsze.
bez znajomości ich rozkładów na czynniki pierwsze.
Wyznaczywszy najpierw algorytmem Euklidesa wartość <math>\mbox{\sf NWD}(a,b)</math>,  
Wyznaczywszy najpierw algorytmem Euklidesa wartość <math>\mathsf{ NWD}(a,b)</math>,  
wystarczy potem podzielić
wystarczy potem podzielić


<center><math>\mbox{\sf NWW}(a,b)= \frac{a\cdot b}{\mbox{\sf NWD}(a,b)}.
 
</math></center>
<center><math>\mathsf{ NWW}(a,b)= \frac{a\cdot b}{\mathsf{ NWD}(a,b)}</math></center>


==Jak dużo jest liczb pierwszych?==
==Jak dużo jest liczb pierwszych?==
Linia 576: Linia 593:
"jest więcej liczb pierwszych niż w każdym danym zbiorze liczb pierwszych", tzn.:
"jest więcej liczb pierwszych niż w każdym danym zbiorze liczb pierwszych", tzn.:


{{twierdzenie|||
{{twierdzenie|10.11|tw 10.11|
Liczb pierwszych jest nieskończenie wiele.
Liczb pierwszych jest nieskończenie wiele.
}}
}}
Linia 596: Linia 613:
Załóżmy więc, że zbiór <math>\mathbb{P}</math> wszystkich liczb pierwszych jest skończony.  
Załóżmy więc, że zbiór <math>\mathbb{P}</math> wszystkich liczb pierwszych jest skończony.  
Zauważmy, że:
Zauważmy, że:


<center><math>\prod_{p\in\mathbb{P}}\frac{1}{1-\frac{1}{p}}
<center><math>\prod_{p\in\mathbb{P}}\frac{1}{1-\frac{1}{p}}
Linia 601: Linia 619:
=\sum_{n\geqslant1}\frac{1}{n}.   
=\sum_{n\geqslant1}\frac{1}{n}.   
</math></center>
</math></center>


Istotnie, pierwsza równość wynika ze wzoru na  
Istotnie, pierwsza równość wynika ze wzoru na  
Linia 606: Linia 625:
każdy czynnik iloczynu po lewej jest sumą nieskończonego ciągu geometrycznego  
każdy czynnik iloczynu po lewej jest sumą nieskończonego ciągu geometrycznego  
o ilorazie <math>\frac{1}{p}</math>.  
o ilorazie <math>\frac{1}{p}</math>.  
Druga równość jest konsekwencją Fundamentalnego Twierdzenia Arytmetyki.  
Druga równość jest konsekwencją [[#tw_10.4|Fundamentalnego Twierdzenia Arytmetyki]].  
Ponieważ założyliśmy, że liczb pierwszych jest skończenie wiele,  
Ponieważ założyliśmy, że liczb pierwszych jest skończenie wiele,  
to lewa strona równości jest oczywiście skończona.  
to lewa strona równości jest oczywiście skończona.  
Linia 620: Linia 639:
Jest wiele ciekawych rezultatów opisujących ten rozkład.
Jest wiele ciekawych rezultatów opisujących ten rozkład.


{{twierdzenie|Dirichlet 1837||
{{twierdzenie|10.12 [Dirichlet 1837]|tw 10.12|
 
Dla dowolnych dwu dodatnich i względnie pierwszych liczb <math>a,d</math>  
Dla dowolnych dwu dodatnich i względnie pierwszych liczb <math>a,d</math>  
istnieje nieskończenie wiele liczb postaci <math>nd+a</math> dla <math>n>0</math>.
istnieje nieskończenie wiele liczb postaci <math>nd+a</math> dla <math>n>0</math>.
Linia 631: Linia 649:
iż jest nieskończenie wiele liczb pierwszych postaci <math>4n+1</math> (<math>d=4,a=1</math>):
iż jest nieskończenie wiele liczb pierwszych postaci <math>4n+1</math> (<math>d=4,a=1</math>):


{| border=1
|+ <span style="font-variant:small-caps">Uzupelnij tytul</span>
|-
|
<math>n</math> || <math>0</math> || <math>1</math> || <math>2</math> || <math>3</math> || <math>4</math> || <math>5</math> || <math>6</math> || <math>7</math> || <math>8</math> || <math>9</math> || <math>10</math> || <math>11</math> || <math>12</math>
|-
|
<math>4n+1</math> || <math>1</math> || '''5''' || <math>9</math> || '''<math>13</math>''' || '''17''' || <math>21</math> || <math>25</math> || '''29''' || <math>33</math> || '''37''' || '''41''' || <math>45</math> || <math>49</math>
|-
|


|}
<center><math>
\begin{array} {|c||c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
n& 0&1&2&3&4&5&6&7&8&9&10&11&12\\
\hline
4n+1&1& \bf 5&9&13&\bf 17&21&25&\bf 29&33&\bf 37&\bf 41&45&49\\
\hline
\end{array}
</math></center>
 


jak i postaci <math>4n+3</math> (<math>d=4, a=3</math>):
jak i postaci <math>4n+3</math> (<math>d=4, a=3</math>):


{| border=1
|+ <span style="font-variant:small-caps">Uzupelnij tytul</span>
|-
|
<math>n</math> || <math>0</math> || <math>1</math> || <math>2</math> || <math>3</math> || <math>4</math> || <math>5</math> || <math>6</math> || <math>7</math> || <math>8</math> || <math>9</math> || <math>10</math> || <math>11</math> || <math>12</math>
|-
|
<math>4n+3</math> || '''3''' || '''7''' || '''11''' || <math>15</math> || '''19''' || '''23''' || <math>27</math> || '''31''' || <math>35</math> || <math>39</math> || '''43''' || '''47''' || <math>51</math>
|-
|


|}
<center><math>
\begin{array} {|c||c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
n& 0&1&2&3&4&5&6&7&8&9&10&11&12\\
\hline
4n+3&\bf 3&\bf 7&\bf 11&15&\bf 19&\bf 23&27&\bf 31&35&39&\bf 43&\bf 47&51\\
\hline
\end{array}
</math></center>
 


}}
}}
Linia 674: Linia 690:
Ważną własność tej funkcji opisuje następujący lemat.
Ważną własność tej funkcji opisuje następujący lemat.


{{lemat|||
{{lemat|10.13|lem 10.13|
Dla <math>n\geq 1</math> zachodzi


Dla <math>n\geq 1</math> zachodzi


<center><math>\vartheta(n)<n\cdot\ln{4}.
<center><math>\vartheta(n)<n\cdot\ln{4}</math></center>
</math></center>
 


}}
}}
Linia 691: Linia 707:
Wtedy oczywiście <math>n</math> nie jest liczbą pierwszą i mamy  
Wtedy oczywiście <math>n</math> nie jest liczbą pierwszą i mamy  


<center><math>\vartheta(n)=\vartheta(n-1)<(n-1)\cdot\ln{4}<n\cdot\ln{4}.
</math></center>


Niech więc <math>n>2</math> będzie nieparzyste, czyli <math>n=2m+1</math> dla pewnego <math>m>0</math>.  
<center><math>\vartheta(n)=\vartheta(n-1)<(n-1)\cdot\ln{4}<n\cdot\ln{4}</math></center>
Rozważmy liczbę
 
 
Niech więc <math>n>2</math> będzie nieparzyste, czyli <math>n=2m+1</math> dla pewnego <math>m>0</math>. Rozważmy liczbę
 
 
<center><math>{2m+1\choose m}=\frac{(2m)!}{m!\cdot m!}</math></center>


<center><math>{2m+1\choose m}=\frac{(2m)!}{m!\cdot m!}.
</math></center>


Zauważmy, że każda liczba pierwsza <math>p</math> w przedziale <math>m<p\leq 2m+1</math>  
Zauważmy, że każda liczba pierwsza <math>p</math> w przedziale <math>m<p\leq 2m+1</math>  
Linia 705: Linia 722:
w liczniku co oznacza, że <math>p</math> jest w rozkładzie <math>{2m+1\choose m}</math>.  
w liczniku co oznacza, że <math>p</math> jest w rozkładzie <math>{2m+1\choose m}</math>.  
Ponadto, łatwo oszacować <math>{2m+1\choose m}</math> od góry przez <math>4^m</math>, np. w ten sposób:
Ponadto, łatwo oszacować <math>{2m+1\choose m}</math> od góry przez <math>4^m</math>, np. w ten sposób:


<center><math>4^m=\frac{(1+1)^{2m+1}}{2}
<center><math>4^m=\frac{(1+1)^{2m+1}}{2}
=\frac{\sum_{k=0}^{2m+1}{2m+1\choose k}}{2}
=\frac{\sum_{k=0}^{2m+1}{2m+1\choose k}}{2}
\geqslant\frac{{2m+1\choose m}+{2m+1\choose m+1}}{2}
\geqslant\frac{{2m+1\choose m}+{2m+1\choose m+1}}{2}
={2m+1\choose m}.
={2m+1\choose m}</math></center>
</math></center>
 


To z kolei pozwala nam oszacować <math>\vartheta(2m+1)</math> następująco:
To z kolei pozwala nam oszacować <math>\vartheta(2m+1)</math> następująco:


<center><math>\vartheta(2m+1)-\vartheta(m+1)  
<center><math>\vartheta(2m+1)-\vartheta(m+1)  
Linia 718: Linia 737:
\leqslant\ln{{2m+1\choose m}}
\leqslant\ln{{2m+1\choose m}}
\leqslant\ln{4^m}
\leqslant\ln{4^m}
\leq m\cdot\ln{4}.
\leq m\cdot\ln{4}</math></center>
</math></center>
 


Z założenia indukcyjnego mamy natomiast <math>\vartheta(m+1)<m\cdot\ln{4}</math>, czyli
Z założenia indukcyjnego mamy natomiast <math>\vartheta(m+1)<m\cdot\ln{4}</math>, czyli


<center><math>\vartheta(n)=\vartheta(2m+1)\leq m\cdot\ln{4}+(m+1)\cdot\ln{4}=n\cdot\ln{4}.
 
</math></center>
<center><math>\vartheta(n)=\vartheta(2m+1)< m\cdot\ln{4}+(m+1)\cdot\ln{4}=n\cdot\ln{4}</math></center>
 


}}
}}


{{twierdzenie|Czebyszew 1850||
{{twierdzenie|10.14 [Czebyszew 1850]|tw 10.14|
 
Dla dowolnego <math>n>1</math> istnieje liczba pierwsza <math>p</math> taka, że <math>n<p<2n</math>.
Dla dowolnego <math>n>1</math> istnieje liczba pierwsza <math>p</math> taka, że <math>n<p<2n</math>.
}}
}}
Linia 744: Linia 763:
Przeanalizujmy teraz rozkład na czynniki pierwsze liczby:  
Przeanalizujmy teraz rozkład na czynniki pierwsze liczby:  


<center><math>{2n\choose n}=\frac{(2n)!}{n!\cdot n!}.
 
</math></center>
<center><math>{2n\choose n}=\frac{(2n)!}{n!\cdot n!}</math></center>
 


Najpierw jednak zauważmy, że ponieważ  
Najpierw jednak zauważmy, że ponieważ  
Linia 751: Linia 771:
a liczba <math>{2n\choose n}</math> jest największym składnikiem tej sumy, to:
a liczba <math>{2n\choose n}</math> jest największym składnikiem tej sumy, to:


<center><math>\frac{4^n}{2n+1}\leqslant{2n\choose n}.
 
</math></center>
<center><math>\frac{4^n}{2n+1}\leqslant{2n\choose n}</math></center>
 


Ponieważ <math>2n</math> jest największym czynnikiem licznika  
Ponieważ <math>2n</math> jest największym czynnikiem licznika  
Linia 764: Linia 785:
<math>\sum_{k=1}^{\infty}\left\lfloor\frac{n}{p^k}\right\rfloor</math> razy.
<math>\sum_{k=1}^{\infty}\left\lfloor\frac{n}{p^k}\right\rfloor</math> razy.
To implikuje, że
To implikuje, że


<center><math>R(p,n)
<center><math>R(p,n)
=\sum_{k=1}^\infty\left\lfloor\frac{2n}{p^k}\right\rfloor-2\cdot\sum_{k=1}^\infty\left\lfloor\frac{n}{p^k}\right\rfloor
=\sum_{k=1}^\infty\left\lfloor\frac{2n}{p^k}\right\rfloor-2\cdot\sum_{k=1}^\infty\left\lfloor\frac{n}{p^k}\right\rfloor
=\sum_{k=1}^{\infty}\left(\left\lfloor\frac{2n}{p^k}\right\rfloor-2\left\lfloor\frac{n}{p^k}\right\rfloor\right).
=\sum_{k=1}^{\infty}\left(\left\lfloor\frac{2n}{p^k}\right\rfloor-2\left\lfloor\frac{n}{p^k}\right\rfloor\right)</math></center>
</math></center>
 


Każdy składnik tej sumy postaci  
Każdy składnik tej sumy postaci  
<math>\left\lfloor\frac{2n}{p^k}\right\rfloor-2\left\lfloor\frac{n}{p^k}\right\rfloor</math>  
<math>\left\lfloor\frac{2n}{p^k}\right\rfloor-2\left\lfloor\frac{n}{p^k}\right\rfloor</math> może przyjąć wartość:
może przyjąć wartość:


* <math>0</math>, jeśli część ułamkowa <math>\frac{n}{p^k}</math> jest mniejsza od <math>\frac{1}{2}</math>,
* <math>0</math>, jeśli część ułamkowa <math>\frac{n}{p^k}</math> jest mniejsza od <math>\frac{1}{2}</math>,


lub  
lub


* <math>1</math>, jeśli część ułamkowa <math>\frac{n}{p^k}</math> jest niemniejsza od <math>\frac{1}{2}</math>.  
* <math>1</math>, jeśli część ułamkowa <math>\frac{n}{p^k}</math> jest niemniejsza od <math>\frac{1}{2}</math>.  
Linia 783: Linia 804:
To pozwala na następujące oszacowanie liczby <math>R(p,n)</math>
To pozwala na następujące oszacowanie liczby <math>R(p,n)</math>


<center><math>R(p,n)<\left\lfloor\log_p{2n}\right\rfloor.
 
</math></center>
<center><math>R(p,n)<\left\lfloor\log_p{2n}\right\rfloor</math></center>
 


To z kolei daje zaskakującą nierówność
To z kolei daje zaskakującą nierówność


<center><math>p^{R(p,n)}\leq 2n.
 
</math></center>
<center><math>p^{R(p,n)}\leq 2n</math></center>
 


Z dotychczasowych ustaleń dotyczących rozkładu liczby <math>{2n\choose n}</math>
Z dotychczasowych ustaleń dotyczących rozkładu liczby <math>{2n\choose n}</math>
Linia 795: Linia 818:


* <math>p>2n</math>, gdyż <math>2n</math> jest największym czynnikiem w liczniku rozważanego symbolu Newtona,
* <math>p>2n</math>, gdyż <math>2n</math> jest największym czynnikiem w liczniku rozważanego symbolu Newtona,
* <math>n<p\leq 2n</math>, gdyż założyliśmy, że nie ma takich liczb pierwszych,
* <math>n<p\leq 2n</math>, gdyż założyliśmy, że nie ma takich liczb pierwszych,
* <math>\frac{2}{3}n<p\leq n</math>, gdyż wtedy <math>p>\sqrt{2n}</math> (ponieważ <math>n\geqslant5</math>)  
 
i wobec tego tylko pierwszy składnik w nieskończonej sumie wyznaczającej <math>R(p,n)</math> może być niezerowy. Ale wtedy i tak <math>R(p,n)=\left\lfloor \frac{2n}{p}\right\rfloor-2\left\lfloor \frac{n}{p}\right\rfloor=2-2=0</math>.
* <math>\frac{2}{3}n<p\leq n</math>, gdyż wtedy <math>p>\sqrt{2n}</math> (ponieważ <math>n\geqslant5</math>) i wobec tego tylko pierwszy składnik w nieskończonej sumie wyznaczającej <math>R(p,n)</math> może być niezerowy. Ale wtedy i tak <math>R(p,n)=\left\lfloor \frac{2n}{p}\right\rfloor-2\left\lfloor \frac{n}{p}\right\rfloor=2-2=0</math>.


Zatem wszystkie liczby pierwsze w rozkładzie <math>{2n\choose n}</math>  
Zatem wszystkie liczby pierwsze w rozkładzie <math>{2n\choose n}</math>  
Linia 807: Linia 831:
Dotychczasowe oszacowania dają nam więc
Dotychczasowe oszacowania dają nam więc


<center><math>\frac{4^n}{2n+1}\leqslant{2n\choose n}\leqslant(2n)^{\sqrt{2n}}\prod_{p\in\mathbb{P}_{\frac{2}{3}n}}p=(2n)^{\sqrt{2n}}e^{\vartheta(\frac{2}{3}n)}.
</math></center>


Z Lematu [[##vartheta|Uzupelnic vartheta|]] wiemy, że <math>\vartheta(n)<n\cdot\ln{4}</math>, więc
<center><math>\frac{4^n}{2n+1}\leqslant{2n\choose n}\leqslant(2n)^{\sqrt{2n}}\prod_{p\in\mathbb{P}_{\frac{2}{3}n}}p=(2n)^{\sqrt{2n}}e^{\vartheta(\frac{2}{3}n)}</math></center>
 
 
Z [[#lem 10.13|Lematu 10.13]] wiemy, że <math>\vartheta(n)<n\cdot\ln{4}</math>, więc
 
 
<center><math>\frac{4^n}{2n+1}\leqslant(2n)^{\sqrt{2n}}4^{\frac{2}{3}n}</math></center>


<center><math>\frac{4^n}{2n+1}\leqslant(2n)^{\sqrt{2n}}4^{\frac{2}{3}n}.
</math></center>


Ponieważ <math>2n+1<(2n)^2</math> mamy
Ponieważ <math>2n+1<(2n)^2</math> mamy


<center><math>4^{\frac{n}{3}}<(2n)^{2+\sqrt{2n}}.
 
</math></center>
<center><math>4^{\frac{n}{3}}<(2n)^{2+\sqrt{2n}}</math></center>
 


Z kolei <math>2\leqslant\frac{\sqrt{2n}}{3}</math>, bo <math>n\geqslant18</math>, więc
Z kolei <math>2\leqslant\frac{\sqrt{2n}}{3}</math>, bo <math>n\geqslant18</math>, więc


<center><math>4^{\frac{n}{3}}\leqslant(2n)^{\frac{4}{3}\sqrt{2n}}.
 
</math></center>
<center><math>4^{\frac{n}{3}}\leqslant(2n)^{\frac{4}{3}\sqrt{2n}}</math></center>
 


Logarytmując obie strony nierówności otrzymujemy
Logarytmując obie strony nierówności otrzymujemy


<center><math>\sqrt{2n}\leq 4\cdot\lg{(2n)}.
 
</math></center>
<center><math>\sqrt{2n}\leq 4\cdot\lg{(2n)}</math></center>
 


Podstawmy <math>n=2^{2t-1}</math>.  
Podstawmy <math>n=2^{2t-1}</math>.  
Linia 834: Linia 863:
co w stoi sprzeczności z <math>n>2048</math>, gdyż
co w stoi sprzeczności z <math>n>2048</math>, gdyż


<center><math>n=\frac{2^{2t}}{2}<\frac{2^{2\cdot6}}{2}=2048.
 
</math></center>
<center><math>n=\frac{2^{2t}}{2}<\frac{2^{2\cdot6}}{2}=2048</math></center>
 


}}
}}
Linia 843: Linia 873:


* dla każdego <math>k</math> istnieje takie <math>n_0</math>, że dla wszystkich <math>n>n_0</math> istnieje przynajmniej <math>k</math> liczb pierwszych <math>p_1,\ldots,p_k</math> w przedziale <math>n<p_i<2n</math>,  
* dla każdego <math>k</math> istnieje takie <math>n_0</math>, że dla wszystkich <math>n>n_0</math> istnieje przynajmniej <math>k</math> liczb pierwszych <math>p_1,\ldots,p_k</math> w przedziale <math>n<p_i<2n</math>,  
* dla dowolnej liczby naturalnej <math>n>6</math>, między liczbami <math>n</math> a <math>2n</math> znajdują się co najmniej dwie liczby pierwsze – co najmniej jedna postaci <math>4k + 1</math> oraz co najmniej jedna postaci <math>4k + 3</math>.
* dla dowolnej liczby naturalnej <math>n>6</math>, między liczbami <math>n</math> a <math>2n</math> znajdują się co najmniej dwie liczby pierwsze – co najmniej jedna postaci <math>4k + 1</math> oraz co najmniej jedna postaci <math>4k + 3</math>.


Linia 851: Linia 882:
oraz <math>\pi(n)=\left\vert\mathbb{P}_n\right\vert</math>.
oraz <math>\pi(n)=\left\vert\mathbb{P}_n\right\vert</math>.


{{twierdzenie|Twierdzenie o Liczbach Pierwszych||
{{twierdzenie|10.15 [Twierdzenie o Liczbach Pierwszych]|tw 10.15|
 
 
<center><math>\pi(n)\sim n/\ln{n}</math></center>


<center><math>\pi(n)\sim n/\ln{n}.
</math></center>


}}
}}
Linia 876: Linia 908:
W zamian pokażemy znacznie słabsze:
W zamian pokażemy znacznie słabsze:


{{twierdzenie|||
{{twierdzenie|10.16|tw 10.16|
<math>\pi(n)=O(n/\ln{n})</math>.
<math>\pi(n)=O(n/\ln{n})</math>.
}}
}}


{{dowod|||
{{dowod|||
Lemat [[##vartheta|Uzupelnic vartheta|]] mówi, że <math>\vartheta(n)<n\cdot\ln{4}</math>,  
[[#lem 10.13|Lemat 10.13]] mówi, że <math>\vartheta(n)<n\cdot\ln{4}</math>,  
co równoważnie można wyrazić jako  
co równoważnie można wyrazić jako  


<center><math>\prod_{p\in\mathbb{P}_n}<4^n.
 
</math></center>
<center><math>\prod_{p\in\mathbb{P}_n}<4^n</math></center>
 


Ponieważ w oczywisty sposób <math>\pi(n)!\leq \prod_{p\in\mathbb{P}_n}</math>,  
Ponieważ w oczywisty sposób <math>\pi(n)!\leq \prod_{p\in\mathbb{P}_n}</math>,  
to ze wzoru Stirlinga mamy:
to ze wzoru Stirlinga mamy:


<center><math>\left(\frac{\pi(n)}{e}\right)^{\pi(n)}<(\pi(n))!<\prod_{p\in\mathbb{P}_n}p<4^n.
 
</math></center>
<center><math>\left(\frac{\pi(n)}{e}\right)^{\pi(n)}<(\pi(n))!<\prod_{p\in\mathbb{P}_n}p<4^n</math></center>
 


Logarytmując stronami otrzymujemy <math>\pi(n)\cdot(\ln{\pi(n)}-1)<n\cdot\ln{4}</math>,  
Logarytmując stronami otrzymujemy <math>\pi(n)\cdot(\ln{\pi(n)}-1)<n\cdot\ln{4}</math>,  
Linia 915: Linia 949:


<center>
<center>
<div class="thumb"><div style="width:520px;height:520px;">
[[File:Applet3.svg|500x500px|thumb|center|]]
<flash>file=Applet3.swf|width=500|height=500</flash>
</div></div>
</center>
</center>

Aktualna wersja na dzień 21:43, 11 wrz 2023

Wstęp

Teoria liczb jest dziedziną matematyki, zajmującą się badaniem własności liczb – początkowo tylko naturalnych. Obecnie należałoby powiedzieć: głównie naturalnych. Jej początki sięgają starożytności. Zajmowali się nią Pitagoras, Euklides, Eratostenes, Diofantos i wielu innych. Bujny rozwój teorii liczb datuje się mniej więcej od czasów działalności Pierre'a Fermata (1601-1665), autora wypowiedzi słynnego Wielkiego Twierdzenia Fermata. Do dwudziestego wieku powszechną była opinia, iż teoria ta nie ma żadnego zastosowania. Jednak dzięki wielkiemu rozwojowi kryptografii - nauki zajmującej się układaniem i łamaniem szyfrów - pogląd ten musiał zostać zweryfikowany.

W dwu kolejnych wykładach poznamy podstawowe pojęcia i klasyczne twierdzenia teorii liczb - niektóre pochodzące jeszcze z czasów starożytnych. Zainteresowanych zachęcamy do rozszerzenia swej wiedzy w kursie Matematyka Dyskretna 2, gdzie przedstawiony jest system kryptograficzny RSA, oparty na tych podstawowych faktach z teorii liczb.

Uwaga

W wykładach poświęconych teorii liczb wszystkie liczby są całkowite, chyba że wyraźnie jest powiedziane inaczej.

Uwaga

W wykładach dotyczących teorii liczb poznamy też kilka algorytmów operujących na liczbach naturalnych. Rozważając ich złożoność musimy poczynić kilka założeń o złożoności podstawowych operacji arytmetycznych. Długość liczby n to liczba bitów n, czyli liczba cyfr w zapisie binarnym (dwójkowym). Wynosi ona lgn+1, ale nam wystarcza wiedzieć, że jest ona O(lgn). Przyjmujemy, że złożoność dodawania liczb a i b jest proporcjonalna do sumy ich długości, dokładniej że jest O(lga+lgb) oraz że złożoność mnożenia liczb a i b jest O(lgalgb) (choć znane są szybsze algorytmy).

Podstawowe pojęcia

Dowolną liczbę wymierną a można wydzielić przez dowolną niezerową liczbę wymierną b i wynik tego działania jest liczbą wymierną. Ograniczając sie jednak zbioru liczb całkowitych, nie każde dzielenie jest wykonalne: 15:3=5, 22:2=11 ale 31:3=?. Rozważamy więc dzielenie liczb całkowitych z resztą.

Dzielenie liczb całkowitych z resztą.

Niech b>0, wtedy dla każdej liczby całkowitej a istnieją jednoznacznie wyznaczone: iloraz q i reszta r spełniające:


a=bq+ri0r<b


Resztę r z dzielenia a przez b zapisujemy też jako: amodb.

Przykład

47mod9=2, 1823mod2=1, 32mod43=32, 111mod13=7, 3mod7=4. W pewnych sytuacjach reszta równa jest 0, np. 22=211+0.

b dzieli a (lub a jest podzielne przez b), co zapisujemy b|a, jeśli istnieje q takie, że b=aq. W takim wypadku mówimy też, że b jest dzielnikiem a lub, że a jest wielokrotnością b. Innymi słowy, jeśli b dzieli a to reszta z dzielenia a przez b równa jest 0 tzn. amodb=0.

Obserwacja 10.1

Dla dowolnych a,b,c zachodzi:

  • jeśli a|b to a|bc,
  • jeśli a|b i b|c to a|c,
  • jeśli a|b, a|c to a|(b+c).

Dowód

Z założenia pierwszego punktu wiemy, iż istnieje d takie, że ad=b. Mnożąc obie strony równości przez c dostajemy adc=bc. A więc istnieje d=dc takie, że ad=bc, co z kolei oznacza, że a|bc.

Z założenia drugiego punktu wiemy, iż istnieją d,e takie, że ad=b i be=c. Łatwo zauważamy, że dla d=de mamy ad=c, czyli a|c.

Z założenia trzeciego punktu istnieją d,e takie, że ad=b i ae=c. Dodając stronami ostatnie równości otrzymujemy a(d+e)=b+c, czyli a|b+c.

Największy wspólny dzielnik liczb a i b (zapisywany przez NWD(a,b)), gdzie chociaż jedna z liczb a,b jest różna od 0, to największa liczba d taka, że d|a i d|b. Oczywiście, 1NWD(a,b)min(|a|,|b|).

Przykład

NWD(30,75)=15, NWD(10,3)=1, NWD(2,8)=2.

Algorytm Euklidesa

Algorytm Euklidesa to algorytm wyznaczania największego wspólnego dzielnika dwu dodatnich liczb całkowitych. Warto tu wspomnieć, iż jest to jeden z najstarszych znanych algorytmów. Euklides zamieścił go ok. 300 roku p.n.e. w Elementach - jednym z najsłynniejszych dzieł naukowych ludzkości. Jednak sam algorytm prawie na pewno znał już Eudoksos z Knidos ok. 50 lat wcześniej.

  1. Wczytaj liczby a,b>0.
  2. Oblicz r jako resztę z dzielenia a przez b.
  3. Zastąp a przez b, zaś b przez r.
  4. Jeżeli b=0 to zwróć a w przeciwnym wypadku przejdź do (2).

Przykład

Przebieg obliczenia NWD(1029,1071):


a=1029b=10711029=01071+1029r=1029a=1071b=10291071=11029+42r=42a=1029b=421029=2442+21r=21a=42b=2142=221+0r=0a=21b=0


Zgodnie z instrukcją (4) algorytm zwraca a=21.

Applet1

Dowód

Dla dowódu poprawności algorytmu Euklidesa ustalmy dwie liczy naturalne a,b>0. Jeśli a<b to podany algorytm odwróci ich porządek przy pierwszym wykonaniu kroku (3), gdyż w tym przypadku amodb=a. Zauważmy, że w każdym następnym kroku a>b>r, ponieważ reszta z dzielenia a przez b leży w zbiorze {0,,b1}. A zatem kolejne reszty będą tworzyć ciąg ściśle malejący, który w końcu osiągnie 0, czyli algorytm Euklidesa po pewnej skończonej ilości kroków się zatrzyma.

Pozostaje sprawdzić, czy algorytm Euklidesa zwraca właściwą odpowiedź. Niech r=amodb tzn. r=abq dla pewnego q. Wszystkie dzielniki a i b dzielą prawą stronę ostatniej równości, a więc dzielą też r, co implikuje NWD(a,b)=NWD(b,r). Dowodzi to, iż wszystkie pary rozważane przez algorytm mają te same dzielniki, a więc ten sam NWD.

Rozszerzenie algorytmu Euklidesa.

Poza znajdowaniem NWD dwóch podanych liczb a,b>0 algorytm Euklidesa można zastosować do wskazania dwu dodatkowych liczb x,y takich, że


ax+by=NWD(a,b)


Już sam fakt, że istnieją takie liczby x,y to obserwacja, która leży u podstaw wielu kolejnych twierdzeń. Ponadto rozszerzony algorytm Euklidesa jest intensywnie stosowany do rozwiązywania równań, w przekształceniach kryptograficznych.

Dowód

Załóżmy, że a>b. Niech r0=a, r1=b, natomiast r2,rn,rn+1 będą kolejnymi resztami wygenerowanymi przez algorytm Euklidesa, przy czym rn+1=0. Wtedy wiemy, że rn=NWD(a,b) oraz


rn1=qn1rn,rn2=qn2rn1+rn,rn3=qn3rn2+rn1,r1=q1r2+r3,r0=q0r1+r2,


dla pewnych q0,q1,,qn1. Mamy zatem rn2qn2rn1=NWD(a,b). Załóżmy indukcyjnie, dla 0<in2, że istnieją x,y takie, że rix+ri+1y=NWD(a,b). Ponieważ ri+1=ri1+qi1ri otrzymujemy:


NWD(a,b)=rix+ri+1y=rix+(ri1+qi1ri)y=ri1y+ri(x+qi1y).


A więc możemy zejść z liczbą i do i=0, co daje pożądane przedstawienie NWD(a,b) jako r0x+r1y=ax+by.

Czas działania.

Niech r0,r1,,rn+1 będą zdefiniowane, jak w dowodzie powyżej. Załóżmy dodatkowo, iż a>b (jeśli nie, to zaczynamy analizować po pierwszym kroku algorytmu). Pokażemy, że


rj+2<12rj


Jeśli rj+112rj, to natychmiast mamy rj+2<rj+112rj. Załóżmy więc, że rj+1>12rj. W tym przypadku podczas dzielenia rj przez rj+1 zachodzi rj=1rj+1+rj+2, czyli rj+2=rjrj+1<12rj.

Ponieważ po każdych, kolejnych dwu krokach rozmiar rj spada co najmniej dwukrotnie, kroków jest O(lga). W każdym kroku przeprowadzane jest dzielenie liczb długości O(lga), a więc O(lg2a) operacji bitowych. To oznacza, iż do policzenia NWD(a,b) (ab) algorytmem Euklidesa wystarcza O(lg3a) operacji bitowych.

Aby policzyć współczynniki x, y takie, że ax+by=NWD(a,b), zgodnie z przedstawionym dowodem, należy przedstawić NWD(a,b) jako kombinację rn1 i rn2, a później pozbyć się kolejnych ri (poczynając od rn1) wprowadzając ri2. Mamy więc O(lga) kroków i w każdym kroku przeprowadzamy mnożenie i dodawanie lub odejmowanie liczb o długości co najwyżej O(lga).

Przykład

Działanie rozszerzonego algorytmu Euklidesa dla a=1547 i b=560.


1547=2560+427560=1427+133427=3133+28133=428+2128=121+721=37+0.


A więc NWD(1547,560)=7. Aby wyrazić 7 jako kombinację danych wejściowych liczymy:


7=28121=281(133428)=1133+528=1133+5(4273133)=542716133=542716(5601427)=16560+21427=16560+21(15472560)=21154758560.


Liczby pierwsze

Każda liczba b>1 ma przynajmniej dwa dodatnie dzielniki: 1 oraz b.

Liczba pierwsza to liczba naturalna p posiadająca dokładnie dwa różne dzielniki. W szczególności p>1.

Przykład

Oto lista wszystkich liczb pierwszych mniejszych od 100:


2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97


Liczba złożona to liczba naturalna a, która nie jest pierwsza, a więc ma jakiś dodatni dzielnik różny od 1 i a.

Liczby względnie pierwsze to takie liczby a i b, dla których NWD(a,b)=1, co zapisujemy inaczej jako ab.

Przykład

  • 103 bo NWD(10,3)=1,
  • 12⊥̸3 bo NWD(12,3)=3,
  • 715 bo NWD(7,15)=1.

Wspomniane Elementy Euklidesa zawierają słynny lemat:

Lemat 10.2 [Lemat Euklidesa]

Jeśli n|ab i na, to n|b.

Dowód

Ponieważ NWD(a,n)=1, to istnieją x,y takie, że xa+yn=1. Mnożąc obie strony równości przez b otrzymujemy:


xab+ynb=b


Z założenia wiemy, iż n dzieli lewą stronę powyższej równości. Musi zatem dzielić też prawą.

Obserwacja 10.3 [Rozkład na iloczyn liczb pierwszych]

Każdą liczbę n>1 można przedstawić jako iloczyn liczb pierwszych.

Dowód

Intuicyjnie, wystarczy rozkładać liczby złożone w iloczynie, aż wszystkie będą liczbami pierwszymi, na przykład


168=286=(47)(23)=(22)723


Dla formalnego dowodu załóżmy niewprost, iż istnieje liczba naturalna większa od 1, nierozkładalna na iloczyn liczb pierwszych. Korzystając z Zasady Minimum, weźmy najmniejszą taką liczbę n. Musi to być liczba złożona, gdyż dowolna liczba pierwsza jest jednoelementowym iloczynem liczb pierwszych. A zatem n jest złożona i istnieją a,b>1 takie, że n=ab. Ale wtedy a oraz b są mniejsze od n, więc z minimalności n, rozkładają się na iloczyn liczb pierwszych. Ale wtedy także n=ab byłoby iloczynem liczb pierwszych, co przeczy temu, że n jest nierozkładalna i kończy dowód.

Nietrywialnym faktem jest, że każda liczba n>1 jest jednoznacznie rozkładalna na iloczyn liczb pierwszych (z dokładnością do kolejności liczb w iloczynie). Fakt ten powszechnie znany jest jako Fundamentalne Twierdzenie Arytmetyki. Dowód tego twierdzenia w dużej części był już w Elementach Euklidesa, jednak pierwszy, pełny i poprawny dowód przedstawił Carl Friedrich Gauss.

Twierdzenie 10.4 [Fundamentalne Twierdzenie Arytmetyki]

Każda liczba naturalna n>1 ma jednoznaczny (z dokładnością do kolejności liczb w iloczynie) rozkład na iloczyn liczb pierwszych.

Dowód

Podamy dwa dowody tego twierdzenia.

Najpierw przedstawimy dowód pochodzący od Euklidesa. Niech n>1 będzie najmniejszą liczbą naturalną posiadającą dwa różne rozkłady na liczby pierwsze: p1pk=n=q1qm, gdzie p1pk oraz q1qm. Żadna z liczb pi nie może pojawić wśród q1,,qm (i na odwrót), gdyż wydzielając obie strony przez pi, otrzymalibyśmy mniejszą liczbę z dwoma różnymi rozkładami. Liczba pierwsza p1 dzieli pierwszy iloczyn, a więc też dzieli i drugi:


p1|q1qm


Zauważmy, że


p1q1,


gdyż są to dwie, różne liczby pierwsze. Na mocy Lematu Euklidesa otrzymujemy, iż p1|q2qm. Kolejno możemy wyeliminować pozostałe liczby qi z prawego iloczynu dochodząc do p1|1, oczywistej sprzeczności.

A oto alternatywny dowód. Niech n będzie najmniejszą liczbą naturalną większą od 1 posiadającą dwa różne rozkłady na liczby pierwsze: p1pk=n=q1qm, gdzie p1pk oraz q1qm. Tak, jak poprzednio dostajemy, że żadna liczba pierwsza nie może być jednocześnie w obu rozkładach. Bez straty ogólności niech p1<q1. Wtedy istnieje d,r takie, że


q1/p1=d+r/p1,


gdzie 0<r<p1<q1 (r nie może być równe 0, gdyż oznaczałoby to iż p1|q1). Wymnażając obie strony równości przez q2qm otrzymujemy


p2pk=dq2qm+rq2qm/p1


Drugi składnik w prawej stronie tej równości musi być zatem liczbą naturalną. Oznaczając ją przez x mamy więc


xp1=rq2qm


Wartość obu stron powyższej równości jest mniejsza od n, gdyż r<q1. Ponieważ r<p1, to po rozłożeniu liczby x na czynniki pierwsze dostaniemy dwa różne rozkłady liczby mniejszej od n, co przeczy założeniu o minimalności n.

Fundamentalne Twierdzenie Arytmetyki eksponuje znaczenie liczb pierwszych. Okazuje się, że są to podstawowe bloki, z których można zbudować w unikalny sposób dowolną liczbę naturalną większą od 1.

Przykład

1925=52711, 2006=21759, 108=2233, 2048=211.

Problem faktoryzacji.

Obecnie nie jest znany żaden efektywny algorytm faktoryzujący liczby naturalne, tzn. znajdujący rozkład na iloczyn liczb pierwszych. Oczekiwana trudność tego problemu jest sercem wielu współczesnych systemów kryptograficznych (np. RSA). Nie wszystkie liczby są równie trudne w rozkładzie. Póki co, (w połowie 2006 roku) najtrudniejsze wydają się liczby, które są iloczynami dwu liczb pierwszych podobnej długości.

Przykład

Aby choć trochę zrozumieć trudność problemu faktoryzacji proponujemy znaleźć nietrywialny dzielnik liczby złożonej 10721. Na stronie WWW firmy RSA podane są znacznie większe liczby, za rozkład których RSA skłonna jest płacić nawet 200 tys. USD.

Znajomość rozkładu liczby na czynniki pierwsze pozwala określić, w sposób systematyczny, wszystkie jej dzielniki.

Obserwacja 10.5

Jeśli n=p1α1p2α2pkαk jest rozkładem liczby n na iloczyn liczb pierwszych, to każdy jej dzielnik d|n jest postaci d=p1β1pkβk, dla pewnych 0βiαi.

Dowód

Załóżmy, dla dowodu niewprost, że w rozkładzie liczby d występuje liczba pierwsza, powiedzmy p, która nie występuje w rozkładzie n=p1α1p2α2pkαk. Oczywiście p|n, bo d|n. Ponieważ p i p1 są dwiema różnymi liczbami pierwszymi, to na mocy Lematu Euklidesa otrzymujemy p|p2α2pkαk. W podobny sposób możemy wyeliminować kolejno liczby p2,,pk dochodząc do sprzeczności, że p|1. A więc rozkład liczby d zawiera wyłącznie liczby pierwsze z rozkładu liczbyn, czyli d=p1β1pkβk, przy czym oczywiście wszystkie βi są nieujemne, ale niektóre mogą być zerowe. Pozostaje pokazać, że βiαi. Załóżmy, że βi>αi dla pewnego i. Wtedy


dpiαi dzieli npiαi,


przy czym liczba dpiαi ma w swoim rozkładzie czynnik pi, a liczba npiαi nie ma. To jednak stoi w sprzeczności z ustanowionym wcześniej faktem, że wszystkie czynniki rozkładu każdego dzielnika jakiejkolwiek liczby naturalnej występują w rozkładzie tego dzielnika.

Ponieważ ciągów liczb naturalnych (β1,,βk) spełniających 0βiαi jest dokładnie (α1+1)(α2+1)(αk+1) z Obserwacji 10.5 dostajemy natychmiast:

Wniosek 10.6

Jeśli n=p1α1p2α2pkαk jest rozkładem liczby n na iloczyn liczb pierwszych, to liczba n ma dokładnie (α1+1)(α2+1)(αk+1) dodatnich dzielników.

Przykład

{

Innym natychmiastowym wnioskiem z Obserwacji 10.5 jest:

Wniosek 10.7

Dla a,b,c jeśli a|c, b|c i ab, to ab|c.

Mając dany rozkład liczb a i b możemy błyskawicznie policzyć NWD(a,b).

Obserwacja 10.8

Jeśli a,b>0, a=p1α1p2α2pkαk i b=p1β1p2β2pkβk, gdzie αi,βi0, to


NWD(a,b)=p1min(α1,β1)pkmin(αk,βk)


Dowód

Każdy wspólny dzielnik d|a,b jest postaci d=p1γ1p2γ2pkγk, przy czym γiαi oraz γiβi. Oczywiście wśród liczb tej postaci, liczba p1min(α1,β1)pkmin(αk,βk) jest największa.

Oczywiście mając rozkłady liczb a,b na czynniki pierwsze łatwo jest już policzyć NWD(a,b). Jak jednak odnotowaliśmy uzyskanie takich rozkładów nie jest łatwe. Dzięki algorytmowi Euklidesa potrafimy jednak (efektywnie) znaleźć NWD dwóch liczb bez znajomości ich rozkładu.

Ważnym dualnym pojęciem do NWD jest pojęcie najmniejszej wspólnej wielokrotności dwu liczb.

Najmniejsza wspólna wielokrotność dwu liczb a,b>0 (oznaczana przez NWW(a,b)) to najmniejsza liczba dodatnia w taka, że a|w i b|w.

Znając rozkłady dwu liczb możemy, analogicznie do NWD , wyznaczyć ich NWW.

Obserwacja 10.9

Jeśli a,b>0, a=p1α1p2α2pkαk i b=p1β1p2β2pkβk, gdzie αi,βi0, to


NWW(a,b)=p1max(α1,β1)pkmax(αk,βk)


Na podstawie ostatnich dwu obserwacji dostajemy natychmiast:

Wniosek 10.10

NWD(a,b)NWW(a,b)=ab

Wniosek ten można wykorzystać do szybkiego liczenia NWD dwu liczb bez znajomości ich rozkładów na czynniki pierwsze. Wyznaczywszy najpierw algorytmem Euklidesa wartość NWD(a,b), wystarczy potem podzielić


NWW(a,b)=abNWD(a,b)

Jak dużo jest liczb pierwszych?

Już Euklides odnotował, że "jest więcej liczb pierwszych niż w każdym danym zbiorze liczb pierwszych", tzn.:

Twierdzenie 10.11

Liczb pierwszych jest nieskończenie wiele.

Dowód

Podamy dwa dowody tego twierdzenia pochodzące odpowiednio od Euklidesa i Eulera.

Załóżmy niewprost za Euklidesem, że liczb pierwszych jest skończenie wiele i są to: p1,,pk. Rozważmy liczbę n=p1p2pk+1. Jest ona oczywiście większa od każdej pi. Ponadto żadna z liczb pierwszych pi nie dzieli n, bo przy dzieleniu przez pi daje resztę 1. A zatem n, albo jest nową liczbą pierwszą, albo w rozkładzie n są nowe liczby pierwsze. Sprzeczność.

Również dowód Eulera jest dowodem niewprost. Załóżmy więc, że zbiór wszystkich liczb pierwszych jest skończony. Zauważmy, że:


p111p=p(1+1p+1p2+1p3+)=n11n.


Istotnie, pierwsza równość wynika ze wzoru na sumę nieskończonego ciągu geometrycznego: każdy czynnik iloczynu po lewej jest sumą nieskończonego ciągu geometrycznego o ilorazie 1p. Druga równość jest konsekwencją Fundamentalnego Twierdzenia Arytmetyki. Ponieważ założyliśmy, że liczb pierwszych jest skończenie wiele, to lewa strona równości jest oczywiście skończona. Wiemy natomiast, że suma po prawej stronie jest nieograniczona, jako że sumy częściowe początkowych n wyrazów tego ciągu to kolejne liczby harmoniczne Hnlgn+12.

Matematycy zastanawiali się także, czy liczby pierwsze są, w pewnym sensie, regularnie rozłożone wśród liczb naturalnych. Jest wiele ciekawych rezultatów opisujących ten rozkład.

Twierdzenie 10.12 [Dirichlet 1837]

Dla dowolnych dwu dodatnich i względnie pierwszych liczb a,d istnieje nieskończenie wiele liczb postaci nd+a dla n>0.

Przykład

Twierdzenie Dirichleta uogólnia wiele wcześniej znanych faktów. Dla przykładu, możemy wywnioskować, iż jest nieskończenie wiele liczb pierwszych postaci 4n+1 (d=4,a=1):


n01234567891011124n+11𝟓913𝟏𝟕2125𝟐𝟗33𝟑𝟕𝟒𝟏4549


jak i postaci 4n+3 (d=4,a=3):


n01234567891011124n+3𝟑𝟕𝟏𝟏15𝟏𝟗𝟐𝟑27𝟑𝟏3539𝟒𝟑𝟒𝟕51


Tezę kolejnego twierdzenia, znanego jako Twierdzenie Bertanda-Czebyszewa lub Twierdzenie Czebyszewa, postawił Joseph Bertrand w 1845 roku. Zweryfikował on poprawność swojej tezy dla liczb n z przedziału [2,,3106]. Pełny dowód przestawił dopiero Pafnuty Czebyszew w 1850 roku. Dowód, który tu przedstawiamy pochodzi od Paula Erd{o}s'a. Wykorzystał on następującą funkcję

ϑ(n)=pnlnp,

gdzie n oznacza zbiór liczb pierwszych nie większych od n. Ważną własność tej funkcji opisuje następujący lemat.

Lemat 10.13

Dla n1 zachodzi


ϑ(n)<nln4


Dowód

Dla dowodu indukcyjnego odnotujmy najpierw, że ϑ(1)=0<1ln4 oraz ϑ(2)=ln2<2ln4.

Niech teraz n>2 będzie parzyste. Wtedy oczywiście n nie jest liczbą pierwszą i mamy


ϑ(n)=ϑ(n1)<(n1)ln4<nln4


Niech więc n>2 będzie nieparzyste, czyli n=2m+1 dla pewnego m>0. Rozważmy liczbę


(2m+1m)=(2m)!m!m!


Zauważmy, że każda liczba pierwsza p w przedziale m<p2m+1 dzieli (2m+1m). Rzeczywiście, żadna liczba z mianownika nie może skrócić liczby pierwszej p w liczniku co oznacza, że p jest w rozkładzie (2m+1m). Ponadto, łatwo oszacować (2m+1m) od góry przez 4m, np. w ten sposób:


4m=(1+1)2m+12=k=02m+1(2m+1k)2(2m+1m)+(2m+1m+1)2=(2m+1m)


To z kolei pozwala nam oszacować ϑ(2m+1) następująco:


ϑ(2m+1)ϑ(m+1)=p2m+1m+1lnpln(2m+1m)ln4mmln4


Z założenia indukcyjnego mamy natomiast ϑ(m+1)<mln4, czyli


ϑ(n)=ϑ(2m+1)<mln4+(m+1)ln4=nln4


Twierdzenie 10.14 [Czebyszew 1850]

Dla dowolnego n>1 istnieje liczba pierwsza p taka, że n<p<2n.

Dowód

Dla dowodu niewprost załóżmy, że n jest najmniejszą liczbą n2, dla której nie ma żadnej liczby pierwszej p w przedziale n<p<2n. Jeśli 2n2048, to jedna z liczb pierwszych 3,5,7,13,23,43,83,163,317,631,1259,2503 będzie pomiędzy n a 2n. Oznacza to, że n2048.

Przeanalizujmy teraz rozkład na czynniki pierwsze liczby:


(2nn)=(2n)!n!n!


Najpierw jednak zauważmy, że ponieważ 4n=(1+1)2n=k=02n(2nk) a liczba (2nn) jest największym składnikiem tej sumy, to:


4n2n+1(2nn)


Ponieważ 2n jest największym czynnikiem licznika (2n)!n!n!=(2nn), to wszystkie liczby pierwsze p w rozkładzie (2nn) są mniejsze od 2n. Niech R(p,n), gdzie p jest liczbą pierwszą, będzie największą liczbą x taką, że px|(2nn). Innymi słowy, R(p,n) jest potęgą liczby p w rozkładzie (2nn).

Łatwo zauważyć, że n! ma czynnik p w swoim rozkładzie na czynniki pierwsze k=1npk razy. To implikuje, że


R(p,n)=k=12npk2k=1npk=k=1(2npk2npk)


Każdy składnik tej sumy postaci 2npk2npk może przyjąć wartość:

  • 0, jeśli część ułamkowa npk jest mniejsza od 12,

lub

  • 1, jeśli część ułamkowa npk jest niemniejsza od 12.

Ponadto, dla k>logp2n wszystkie składniki zerują się, bo 2npk<1. To pozwala na następujące oszacowanie liczby R(p,n)


R(p,n)<logp2n


To z kolei daje zaskakującą nierówność


pR(p,n)2n


Z dotychczasowych ustaleń dotyczących rozkładu liczby (2nn) na czynniki pierwsze wiemy, że nie występują tam liczby pierwsze p takie, że:

  • p>2n, gdyż 2n jest największym czynnikiem w liczniku rozważanego symbolu Newtona,
  • n<p2n, gdyż założyliśmy, że nie ma takich liczb pierwszych,
  • 23n<pn, gdyż wtedy p>2n (ponieważ n5) i wobec tego tylko pierwszy składnik w nieskończonej sumie wyznaczającej R(p,n) może być niezerowy. Ale wtedy i tak R(p,n)=2np2np=22=0.

Zatem wszystkie liczby pierwsze w rozkładzie (2nn) są niewiększe niż 23n. Liczby pierwsze p>2n występują tam w co najwyżej pierwszej potędze, jako że pR(p,n)<2n. Z kolei iloczyn pR(p,n) przebiegający po liczbach pierwszych p2n można oszacować z góry przez (2n)2n. Dotychczasowe oszacowania dają nam więc


4n2n+1(2nn)(2n)2np23np=(2n)2neϑ(23n)


Z Lematu 10.13 wiemy, że ϑ(n)<nln4, więc


4n2n+1(2n)2n423n


Ponieważ 2n+1<(2n)2 mamy


4n3<(2n)2+2n


Z kolei 22n3, bo n18, więc


4n3(2n)432n


Logarytmując obie strony nierówności otrzymujemy


2n4lg(2n)


Podstawmy n=22t1. Wtedy 2tt4, a więc t<6, co w stoi sprzeczności z n>2048, gdyż


n=22t2<2262=2048


Paulowi Erd{o}s'owi udało się uogólnić Twierdzenie Bertranda-Czebyszewa na kilka sposobów. Pokazał on np., że:

  • dla każdego k istnieje takie n0, że dla wszystkich n>n0 istnieje przynajmniej k liczb pierwszych p1,,pk w przedziale n<pi<2n,
  • dla dowolnej liczby naturalnej n>6, między liczbami n a 2n znajdują się co najmniej dwie liczby pierwsze – co najmniej jedna postaci 4k+1 oraz co najmniej jedna postaci 4k+3.

Wszystkie obserwacje o pewnej regularności rozkładu liczb pierwszych w zbiorze liczb naturalnych potwierdza (i w pewnym sensie uogólnia) Twierdzenie o Liczbach Pierwszych. Niech, jak poprzednio, n będzie zbiorem liczb pierwszych niewiększych od n oraz π(n)=|n|.

Twierdzenie 10.15 [Twierdzenie o Liczbach Pierwszych]


π(n)n/lnn


Twierdzenie o Liczbach Pierwszych opisuje asymptotyczną gęstość liczb pierwszych wśród liczb naturalnych. Z grubsza, mówi ono, iż wybierając losowo liczbę w pobliżu pewnej dużej liczby n, mamy 1lnn szansy na to, by wylosowana liczba była pierwsza. Dla przykładu: w pobliżu n=10000 mniej więcej co 9-ta liczba jest pierwsza, tymczasem w pobliżu n=1000000000 już co 21-wsza liczba jest pierwsza. A więc, statystycznie, w przedziale (n,2n) jest znacznie więcej liczb pierwszych niż mówią poprzednie twierdzenia. Problem polega na tym, że choć wiemy, że musi ich być bardzo dużo, to nie jesteśmy w stanie udowodnić, że dla konkretnie rozważanej liczby n nie nastąpiło jakieś "lokalne zaburzenie".

Twierdzenie o Liczbach Pierwszych sformułował Adrien-Marie Legendre'a w 1796. Zostało ono udowodnione niezależnie przez Hadamarda i de la Vallée Poussina w 1896. Dowód używa złożonych metod analitycznych, wykraczających poza ramy tego wykładu. Dlatego nie przedstawimy jego pełnego dowodu. W zamian pokażemy znacznie słabsze:

Twierdzenie 10.16

π(n)=O(n/lnn).

Dowód

Lemat 10.13 mówi, że ϑ(n)<nln4, co równoważnie można wyrazić jako


pn<4n


Ponieważ w oczywisty sposób π(n)!pn, to ze wzoru Stirlinga mamy:


(π(n)e)π(n)<(π(n))!<pnp<4n


Logarytmując stronami otrzymujemy π(n)(lnπ(n)1)<nln4, co implikuje π(n)=O(n/lnn).

Sito Eratostenesa

Jak wyznaczyć wszystkie π(200) liczb pierwszych niewiększych od 200? Jeszcze w czasach starożytnych Eratostenes opisał metodę postępowania rozwiązującą ten problem.

Algorytm Sita

  1. Wczytaj n. Wypisz listę wszystkich liczb naturalnych od 2 do n. Na początku wszystkie liczby są nieskreślone.
  2. Dopóki istnieje nieskreślona jeszcze liczba na naszej liście niewiększa od n powtarzaj:
    Weź pierwszą nieskreśloną liczbę p z listy i dodaj do zbioru znalezionych liczb pierwszych. Później skreśl liczbę p z listy i skreśl wszystkie wielokrotności liczby p, które są jeszcze na liście.
  3. Wszystkie pozostałe, nieskreślone liczby z listy dodaj do zbioru znalezionych liczb pierwszych.

Wystarczy wykreślać wielokrotności liczb pierwszych, niewiększych od n, gdyż jeśli dowolna liczba mn ma nietrywialny dzielnik (różny od 1 i niej samej), to m ma nietrywialny dzielnik pierwszy, niewiększy od n.