5040 =

Podobne dokumenty
Liczba 2, to jest jedyna najmniejsza liczba parzysta i pierwsza. Oś liczbowa. Liczba 1, to nie jest liczba pierwsza

0.1 Sposȯb rozk ladu liczb na czynniki pierwsze

MATEMATYKA W SZKOLE HELIANTUS LICZBY NATURALNE I CA LKOWITE

MATEMATYKA DZIELENIE LICZB Z RESZTA CECHY PODZIELNOṠCI

Pierwiastki arytmetyczne n a

System liczbowy binarny.

Liczby naturalne i ca lkowite

MATEMATYKA W SZKOLE HELIANTUS WARSZAWA UL. BAŻANCIA 16 SYSTEMY LICZBOWE POZYCYJNE DECYMALNY, BINARNY, OKTALNY. Warszawa pażdziernik 2017

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

=, wariacje bez powtorzen. (n k)! = n k, wariacje z powtorzeniami.

MADE IN CHINA czyli SYSTEM RESZTOWY

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Wybrane zagadnienia teorii liczb

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 5

Zastosowania arytmetyki modularnej. Zastosowania arytmetyki modularnej

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

Liczby całkowite. Zadania do pierwszych dwóch lekcji

LICZBY PIERWSZE. Jan Ciurej Radosław Żak

0.1 Kombinatoryka. n! = (n 1) n. Przyjmujemy umownie że 0! = 1 Wypiszmy silnie kolejnych liczb naturalnych

Spis treści. Przedmowa... 9

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

Zarys algorytmów kryptograficznych

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Wstęp do Informatyki

Przykładowe zadania z teorii liczb

MATEMATYKA REPREZENTACJA LICZB W KOMPUTERZE

Luty 2001 Algorytmy (7) 2000/2001

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 6a

Algorytmy w teorii liczb

EGZAMIN MATURALNY Z INFORMATYKI

Kongruencje. Sławomir Cynk. 24 września Nowy Sącz. Instytut Matematyki Uniwersytetu Jagiellońskiego

Joanna Kluczenko 1. Spotkania z matematyka

Kongruencje pierwsze kroki

Pracownia Komputerowa wyk ad V

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

1259 (10) = 1 * * * * 100 = 1 * * * *1

Jednoznaczność dzielenia. Jednoznaczność dzielenia

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Liczby pierwsze na straży tajemnic

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Zapis liczb binarnych ze znakiem

Pierwiastki pierwotne, logarytmy dyskretne

Algorytm. a programowanie -

0.1 Reprezentacja liczb w komputerze

Równoleg le sortowanie przez scalanie

Tajemnice liczb pierwszych i tych drugich

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Algorytm Euklidesa. ZADANIE 1. Oblicz korzystając z algorytmu Euklidesa: (a) NWD(120, 195), (b) NWD(80, 208), (c) NWD(36, 60, 90),

Arytmetyka liczb binarnych

Kod U2 Opracował: Andrzej Nowak

1.1. Pozycyjne systemy liczbowe

LICZBY PIERWSZE. 14 marzec Jeśli matematyka jest królową nauk, to królową matematyki jest teoria liczb. C.F.

Pracownia Komputerowa wykład V

Program telewizyjny emisji filmów w 4 stacjach telewizyjnych: Telewizja / stacja Film i godziny jego emisji Czas trwania emisji filmu

Matematyka dyskretna

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Twierdzenie Eulera. Kongruencje wykład 6. Twierdzenie Eulera

Analiza kongruencji. Kongruencje Wykład 3. Analiza kongruencji

Zadania do samodzielnego rozwiązania

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

Równania wielomianowe

Projekt AS KOMPETENCJI jest współfinansowany przez Unię Europejską w ramach środków Europejskiego Funduszu Społecznego

Algorytmy i struktury danych. Wykład 4

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Zadanie 1. Potęgi (14 pkt)

Dziedziny Euklidesowe

Wstęp do informatyki- wykład 1

2.8. Algorytmy, schematy, programy

Systemy liczbowe używane w technice komputerowej

EGZAMIN MATURALNY Z INFORMATYKI

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Sumy kwadratów kolejnych liczb naturalnych

Badanie pierwszości liczby, klasa NP i test Rabina

Wstęp do Informatyki

na p laszczyźnie kartezjaṅskiej prowadzimy prost a o rȯwnaniu s 1. (1.1) s 0 + t 1 t 0

Kodowanie liczb całkowitych w systemach komputerowych

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera

Laboratorium kryptograficzne dla licealistów 6

Luty 2001 Algorytmy (8) 2000/2001

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

ZADANIE 1. Ważenie (14 pkt)

Zegar ten przedstawia reszty z dzielenia przez 6. Obrazuje on jak kolejne liczby można przyporządkować do odpowiednich pokazanych na zegarze grup.

Kongruencje i ich zastosowania

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

KONGRUENCJE. 1. a a (mod m) a b (mod m) b a (mod m) a b (mod m) b c (mod m) a c (mod m) Zatem relacja kongruencji jest relacją równoważności.

Algorytmy asymetryczne

Wyk lad 3 Wielomiany i u lamki proste

ALGORYTMY I STRUKTURY DANYCH

Transkrypt:

1 Podstawowe Twierdzenie Arytmetyki. Twierdzenie 0.1 Każd a liczbȩ naturaln a można przedstawiċ jako iloczyn liczb pierwszych. Taki rozk lad jest jedyny. Inaczej, jeżeli n jest liczb a naturaln a to istniej a liczby pierwsze takie, że p 1, p 2, p 3, p k n = p 1 p 2 p 3 p k Sposȯb rozk ladu liczby naturalnej m na czynniki pierwsze jest prosty. Mianowicie, dzielimy liczbȩ m przez kolejne liczby pierwsze. Wtedy liczba m rȯwna siȩ iloczynowi dzielnikȯw. Przyk lad 0.1 Roz lȯż liczbȩ m = 1638 na czynniki pierwsze. Pos lȯżymy siȩ schematem 1638 2 819 3 273 3 91 7 13 13 1 Liczba 1638 rozk lada siȩ na czynniki 2, 3, 3, 7, 13 To znaczy 1638 = 2 3 3 7 13 Przyk lad 0.2 Roz lȯż liczbȩ m=5040 na czynniki pierwsze. Pos lȯżymy siȩ schematem 5040 2 2520 2 1260 2 630 2 315 3 105 5 21 3 7 7 1 Liczba m = 5040 rozk lada siȩ na czynniki 2, 2, 2, 2, 3, 5, 3, 7, To znaczy 5040 = 2 2 2 2 3 5 3 7.

2 Zauważmy, że siedem silnia rȯwna siȩ 7! = 1 2 3 4 5 6 7 = 5040 W tym rozk ladzie mamy czynniki z lożone 4 = 2 2 i 6 = 2 3 Dlatego, wed lug Podstawowego Twierdzenia Arytmetyki, liczba m = 5040 rozk lada siȩ na iloczyn liczb pierwszych Algorytm. 5040 = 2 4 3 2 5 7 Od czasȯw Euklidesa (Algorytm znajdowania najwiȩkszego wspȯlnego dzielnika dwȯch liczba naturalnych) i Eratotenesa (Sito Eratotenesa wyznaczenia wszystkich liczb pierwszych z przedzia lu [2, n], og loszono wiele algorymȯw rozk ladu liczb naturalnych na czynniki pierwsze. Dalej tworzone s a nowe algorytmy g lȯwnie pod k atem kodowania i zastosowania bardzo dużych liczb, z setkami cyfr, na przyk lad w kryptografii. Niżej podamy prosty, ale nie optymalny, algorytm rozk ladu danej liczby naturalnej na czynniki pierwsze oraz jego kod w systemie Mathematica. Oznaczenia 1. Liter a m oznaczamy dan a liczbȩ naturaln a, ktȯrej rozk ladu na czynniki pierwsze szukamy. 2. Deklarujemy dwie listy puste Tz = {}, oraz Tp = {} Do listy T z do l aczymy wszystkie dzielniki liczby m, w tym rȯwnież dzielniki z lożone, stosuj ac operacje Modulo Kongruencje obliczania reszty r z dzielenia liczby m przez kolejne liczby i = 2, 3, 4,, n; r = (m Mod i) dla i = 2, 3, 4,, n, n = [ m 2 ]. 1 Do l aczamy rȯwnież krotnoṡci czynnika i. Natomiast do listy T p do l aczamy kolejne czynniki pierwsze liczby m, redukuj ac z listy T z czynniki z lożone. Modu l w systemie Mathematica Listȩ wszystkich możliwych czynnikȯw liczby m wyznacza modu l. 1 Tutaj symbol [ m ] oznacza ca loṡċ z dzielenia liczby m przez i. i

3 TwierdzenieArytmetyki[m_] := Module[{ a, b, test, i, n, m0, m1, r, r1, Tp}, m0 = m; m1 = m; n = Floor[m0/2]; test = 0; Tp = { }; onep[a_, r_, i_] := Module[{ }, r1 = r; b = a; While[r1 == 0, {AppendTo[Tp, i], r1 = Mod[b, i], b = b/i}]; test = 1; m0 = a; ]; Do[{r = Mod[m0, i], a = Floor[m0/i], If[r == 0, onep[a, r, i]]}, {i,2, n}]; If[test == 0, AppendTo[Tp, m]]; Tp] ] Przyk lad 0.3 Dla m = 5040 otrzymujemy wszystkie jej czynniki wykonuj ac instrukcjȩ TwierdzenieArytmetyki[5040] Out[5]= {2, 2, 2, 2, 3, 3, 4, 5, 6, 7, 5040} Modu l CzynnikiP ierwsze tworzy listȩ T p czynnikȯw pierwszych liczby m z listy T z wzystkich czynnikȯw liczby m CzynnikiPierwsze[l_] := Module[{c, k, n, Ts, Tz }, Ts = { }; Tz = TwierdzenieArytmetyki[l]; n = Length[Tz]; Table[ { c = Length[TwierdzenieArytmetyki[Tz[[k]]]], If[c == 1, AppendTo[Ts, Tz[[k]]]]}, {k, 1, n}]; Ts ] Przyk lad 0.4 Dla m = 5040 otzymujemy rozk lad tej liczby na czynniki pierwsze wykonujemy instrukcjȩ CzynnikiPierwsze[5040] Out[5]= {2, 2, 2, 2, 3, 3, 5, 7} Implementacje powyższych modu lȯw w systemie Mathematica aktywujemy modu l T wierdzenieartymetyki[m] nastȩpnie, aktywujemy modu l CzynnikiP ierwsze[m]

4 rozk lad liczby m na czynniki pierwsze otrzymujemy wykonuj ac instrukcje CzynnikiPierwsze[m] Przyk lad 0.5 Dla m = 30030 otzymujemy rozk lad tej liczby na czynniki pierwsze wykonujemy instrukcjȩ CzynnikiPierwsze[30030] Out[8]= {2, 3, 5, 7, 11, 13} W systemie Mathematica jest bardzo krȯtka i skuteczna instrukcja rozk ladu danej liczby m na czynniki pierwsze. To jest instrukcja FactorInteger[m] Przyk lad 0.6 Znajdź rozk lad na czynniki pierwsze liczby m = 60 wykonuj ac instrukcje FactorInteger[60] {{2, 2}, {3, 1}, {5, 1}} Wynik tej instrukcji {{2, 2}, {3, 1}, {5, 1}} czytamy 60 = 2 2 3 1 5 1 Przyk lad 0.7 Znajdź rozk lad na czynniki pierwsze liczby 18 to cyfrowej wykonuj ac instrukcje m = 235489703970060540 FactorInteger[235489703970060540] {{2, 2}, {3, 3}, {5, 1}, {7, 1}, {11, 1}, {13, 1}, {17,1}, {19, 1}, {23, 1}, {29, 1}, {31, 1}, {37, 1}, {41, 1}, {43, 1}} Wynik tej instrukcji czytamy 235489703970060540 = 2 2 3 1 5 1 7 1 11 1 13 1 17 1 19 1 23 1 29 1 31 1 37 1 41 1 43 1 Przyk lad 0.8 Znajdź rozk lad na czynniki pierwsze liczby 100 to cyfrowej m = 240000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000

5 wykonuj ac instrukcjȩ FactorInteger[m] {{2, 103}, {3, 1}, {5, 100}} Wynik tej instrukcji czytamy m = 2 103 3 1 5 100 0.1 Zadania Zadanie 0.1 Znajdź wszystkie dzielniki liczby m = 15 wykonuj acj krok po kroku algorytm TwierdzenieArytmetyki[m] zapisany w kodzie Mathematyka. Zadanie 0.2 Znajdź rozk lad na czynniki pierwsze liczby m = 15 wykonuj acj krok po kroku algorytm CzynnikiPierwsze[m] zapisany w kodzie Mathematyka. Zadanie 0.3 Maj ac dostȩpny system Mathematica na notebooku, znajdź wszystkie dzielniki liczby m = 3072 wykonuj ac instrukcjȩ TwierdzenieArytmetyki[m] Zadanie 0.4 Maj ac dostȩpny system Mathematica na notebooku, znajdź roz lȯż na czynniki pierwsze liczbȩ m = 3072 wykonuj ac instrukcjȩ CzynnikiPierwsze[m] Prof. dr Tadeusz STYŠ Warszawa 2018-06-02