Provjerite je li broj prost

Autor: John Pratt
Datum Stvaranja: 9 Veljača 2021
Datum Ažuriranja: 28 Lipanj 2024
Anonim
Смотрите 4, 5, 6 серии, юмористического сериала для подростков - "Хочу в Париж".
Video: Смотрите 4, 5, 6 серии, юмористического сериала для подростков - "Хочу в Париж".

Sadržaj

Prosti brojevi su brojevi koji su samo po sebi djeljivi i nazivaju se 1 - drugi brojevi spoj brojevi. Što se tiče ispitivanja je li broj prost, postoji nekoliko mogućnosti. Neke od ovih metoda relativno su jednostavne, ali za veće brojeve nisu nimalo praktične. Ostali testovi koji se često koriste zapravo su cjeloviti algoritmi koji se temelje na jednom vjerojatnost koji broj pogrešno ponekad smatraju prostim. Pročitajte korak 1 da biste naučili kako se testirati imate li posla s prostim brojem.

Kročiti

Metoda 1 od 4: Pokušajte podijeliti

Pokušaj dijeljenja daleko je najlakši način testiranja broja. Za male brojeve to je obično i najbrži način. Test se temelji na definiciji prostog broja: broj je prost ako je samo djeljiv sa sobom i 1.

  1. Pretpostavimo n je broj koji želite testirati. Podijelite broj n sa svim mogućim djeljivim cijelim brojevima. Za veće brojeve poput n = 101 krajnje je nepraktično dijeliti s bilo kojim mogućim cijelim brojem manjim od n. Srećom, postoji nekoliko trikova za smanjenje broja čimbenika koji se ispituju.
  2. Utvrdite da li n čak. Svi parni brojevi potpuno su djeljivi sa 2. Stoga, ako je n paran, to možete reći n je složeni broj (i stoga nije prost broj). Da biste brzo utvrdili je li paran broj, morate obratiti pažnju samo na zadnju znamenku. Ako je zadnja znamenka 2, 4, 6, 8 ili 0, tada je broj paran i nije prost.
    • Jedina iznimka od ovog pravila je sam broj 2 koji je, jer je sam po sebi djeljiv i 1, također prost. 2 je jedini parni broj.
  3. Dio n bilo kojim brojem između 2 i n-1. Budući da prosti broj nema druge čimbenike osim sebe i 1 i zato što su cjelobrojni čimbenici manji od njihova proizvoda, provjera djeljivosti cijelog broja manjeg od n i većeg od 2 odredit će je li n prost. Počinjemo nakon 2, jer parni brojevi (višekratnici 2) ne mogu biti prosti brojevi. Ovo je daleko od učinkovitog načina testiranja, kao što ćete vidjeti u nastavku.
    • Na primjer, ako bismo htjeli koristiti ovu metodu da testiramo je li 11 jednostavno ili ne, podijelili bismo 11 s 3, 4, 5, 6, 7, 8, 9 i 10, tražeći cjelobrojni odgovor bez ostatka. Budući da se niti jedan od ovih brojeva ne uklapa u potpunosti u 11, možemo reći da je 11 jedan je glavno.
  4. Da biste uštedjeli vrijeme, testirajte samo do sqrt (n), zaokruženo. Testiranje broja n provjerom svih brojeva između 2 i n-1 može brzo potrajati puno vremena. Primjerice, ako bismo htjeli provjeriti je li 103 ovom metodom, morali bismo podijeliti s 3, 4, 5, 6, 7 ... itd., Sve do 102! Srećom, nije potrebno ovako testirati. U praksi je potrebno samo testirati faktore između 2 i kvadratnog korijena iz n. Ako kvadratni korijen od n nije broj, zaokružite ga na najbliži cijeli broj i testirajte na taj broj. Objašnjenje potražite u nastavku:
    • Ispitajmo čimbenike 100. 100 = 1 × 100, 2 × 50, 4 × 25, 5 × 20, 10 × 10, 20 × 5, 25 × 4, 50 × 2 i 100 × 1. Imajte na umu da su nakon 10 × 10 faktori isti ako je to za 10 × 10, tek onda okrenuto. Općenito, možemo zanemariti čimbenike n veće od sqrt (n) jer su oni jednostavno nastavak čimbenika manjih od sqrt (n).
    • Isprobajmo primjer. Ako je n = 37, tada ne moramo testirati sve brojeve od 3 do 36 da bismo utvrdili je li n prost. Umjesto toga, trebamo samo pogledati brojeve između 2 i sqrt (37) (zaokruženo).
      • sqrt (37) = 6,08 - zaokružit ćemo ovo na 7.
      • 37 nije u potpunosti djeljiv s 3, 4, 5, 6 i 7, tako da možemo s pouzdanjem tvrditi da je jedan glavni broj je.
  5. Da bismo uštedjeli još više vremena, koristimo samo osnovne čimbenike. Proces testiranja moguće je učiniti dijeljenjem još kraće ne uključujući one čimbenike koji nisu prosti brojevi. Prema definiciji, svaki složeni broj može se izraziti kao umnožak dva ili više prostih brojeva. Dakle, dijeljenje broja n sastavljenim brojem je nepotrebno - to je ekvivalentno dijeljenju s prostim brojevima nekoliko puta. Dakle, možemo dodatno suziti popis mogućih čimbenika na samo proste brojeve manje od sqrt (n).
    • To znači da se mogu preskočiti svi parni čimbenici, kao i čimbenici koji su višestruki prosti brojevi.
    • Na primjer, pokušajmo utvrditi je li 103 jednostavno ili nije. Kvadratni korijen iz 103 je 11 (zaokruženo). Prosti brojevi između 2 i 11 su 3, 5, 7 i 11. 4, 6, 8 i 10 su parni, a 9 je višekratnik 3, prost broj, pa ga možemo preskočiti. Time smo svoj popis mogućih čimbenika sveli na samo 4 broja!
      • 103 nije potpuno djeljiv ni sa 3, 5, 7 ili 11, tako da sada znamo da je 103 jedan glavni broj je.

Metoda 2 od 4: Korištenje Fermatove male teoreme

1640. godine francuski matematičar Pierre de Fermat prvi je put predložio teorem (koji je sada nazvan po njemu) koji može biti od velike pomoći u određivanju je li broj prost. Tehnički, Fermatov test želi potvrditi da je broj sastavljen, a ne prost. To je zato što test može pokazati s "apsolutnom sigurnošću" da je broj složen, ali samo "vjerojatnost" da je broj prost. Fermatov mali teorem koristan je u situacijama kada je pokušaj dijeljenja nepraktičan i kada postoji popis brojeva koji su iznimke od teorema.


  1. Pretpostavimo n broj je za testiranje. Ovim testom utvrđujete je li zadani broj n prost. Međutim, kao što je gore spomenuto, ovaj teorem ponekad može pogrešno karakterizirati neki spoj kao osnovni. Važno je to uzeti u obzir i provjeriti svoj odgovor, koji je objašnjen u nastavku.
  2. Odaberite cijeli broj a između 2 i n-1 (uključujući). Točan cijeli broj koji odaberete nije važan. Budući da parametri za a uključuju 2 i n-1, također ih možete koristiti.
    • Primjer: Je li 100 premijera ili nije. Pretpostavimo da uzmemo 3 kao test vrijednost - ovo je između 2 i n-1, pa je to dovoljno.
  3. izračunati a (mod n). Razrada ovog izraza zahtijeva određeno znanje o matematičkom sustavu tzv modularna matematika. U modularnoj matematici, brojevi se vraćaju na nulu nakon postizanja određene vrijednosti, također poznate kao modul. Možete to zamisliti kao sat: na kraju će se kazaljka sata vratiti na 1 sat nakon 12 sati, a ne na 13 sati. Modul se bilježi kao (mod n). Dakle, u ovom koraku izračunavate a s modulom n.
    • Druga metoda je izračunavanje a, zatim dijeljenje s n, a zatim ostatak upotrijebite kao odgovor. Specijalizirani kalkulatori s funkcijom modula mogu biti vrlo korisni pri dijeljenju velikih brojeva jer mogu odmah izračunati ostatak dijeljenja.
    • Koristeći takav kalkulator u našem primjeru, možemo vidjeti da 3/100 ima ostatak od 1. Dakle, 3 (mod 100) je 1.
  4. Ako to izračunamo ručno, koristimo eksponent kao kratki format. Ako nemate kalkulator s funkcijom modula, upotrijebite notaciju s eksponentom kako biste olakšali postupak određivanja ostatka. Pogledaj ispod:
    • U našem primjeru izračunavamo 3 s modulom 100. 3 je vrlo, vrlo velik broj - 515.377.520.732.011.331.036.461.129.765.621.272.702.107.522.001 - toliko velik da postaje vrlo teško raditi s njim. Umjesto da koristimo 48-znamenkasti odgovor za 3, bolje da ga napišemo kao eksponent, pa (((((((3)*3))))*3)). Zapamtite da uzimanje eksponenta eksponenta ima za posljedicu množenje eksponenata ((x) = x).
      • Sada možemo odrediti ostalo. Započnite rješavanjem (((((((3) * 3))))) * * 3)) na unutarnjem skupu zagrada i izvucite se, dijeleći svaki korak sa 100. Nakon što pronađemo ostalo, to ćemo upotrijebiti za sljedeći korak, a ne stvarni odgovor. Pogledaj ispod:
        • (((((((9) * 3)))) * 3)) - 9/100 nema ostatak, pa možemo nastaviti.
        • ((((((27)))) * 3)) - 27/100 nema ostatak, pa možemo ići dalje.
        • (((((729))) * 3)) - 729/100 = 7 R 29. Naš ostatak je 29. Nastavljamo sa sljedećim korakom, a ne 729.
        • ((((29=841)) * 3)) - 841/100 = 8 R 41. U sljedećem koraku ponovno koristimo naš ostatak 41.
        • (((41 = 1681) * 3)) - 1681/100 = 16 R 81. Naš ostatak 81 koristimo u sljedećem koraku.
        • ((81*3 = 243)) - 243/100 = 2 R 43. Koristit ćemo naš ostatak 43 u sljedećem koraku.
        • (43 = 1849) - 1849/100 = 18 R 49. Koristit ćemo naš ostatak 49 u sljedećem koraku.
        • 49 = 2401 - 2401/100 = 24 R 1. naš konačni ostatak je 1. Drugim riječima, 3 (mod 100) = 1. Imajte na umu da je ovo isti odgovor kao što smo izračunali u prethodnom koraku!
  5. Doznajte je li a (mod n) = a (mod n). Ako nije, n je spoj. Ako je istina, onda n vjerojatno, (ali nisam siguran) prost broj. Ponavljanje testa s različitim vrijednostima za a može učiniti ishod sigurnijim, ali postoje rijetki kompozitni brojevi koji zadovoljavaju Fermatov teorem za svi vrijednosti a. Oni se nazivaju Carmichaelovim brojevima - najmanji od tih brojeva je 561.
    • U našem primjeru 3 (mod 100) = 1 i 3 (mod 100) = 3,1 ≠ 3, pa možemo reći da je 100 složeni broj.
  6. Upotrijebite Carmichaelove brojeve kako biste bili sigurni u svoj ishod. Znanje koji brojevi odgovaraju Carmichaelovoj seriji prije nastavka može vam uštedjeti mnogo brige oko toga je li neki broj prost. Općenito, Carmichaelovi brojevi umnožak su pojedinačnih prostih brojeva, gdje za sve proste brojeve vrijedi da ako je p djelitelj n, tada je i p-1 djelitelj n-1. Internetski popis Carmichaelovih brojeva može biti vrlo koristan za određivanje je li neki broj prost, koristeći Fermatov Mali teorem.

Metoda 3 od 4: Korištenje Miller-Rabin testa

Miller-Rabinov test djeluje na isti način kao Fermatov mali teorem, ali se bolje bavi nestandardnim brojevima kao što su Carmichaelovi brojevi.


  1. Pretpostavimo n je neparan broj koji želimo testirati na primarnost. Kao i u gore navedenim metodama, n je varijabla kojoj želimo odrediti primarnost.
  2. Pritisak n-1 u obliku 2 × d na kojem d je čudno. Broj n je prost ako je neparan. Dakle, n - 1 mora biti paran. Budući da je n - 1 paran, može se zapisati kao stepen 2 puta neparan broj. Dakle, 4 = 2 × 1; 80 = 2 × 5; i tako dalje.
    • Pretpostavimo da želimo odrediti je li n = 321 prost. 321 - 1 = 320, što možemo izraziti kao 2 × 5.
      • U ovom je slučaju prikladan broj n = 321. Određivanje n - 1 za n = 371 može zahtijevati veliku vrijednost za d, što će u kasnijoj fazi otežati cijeli postupak. 371 - 1 = 370 = 2 × 185
  3. Odaberite bilo koji broj a između 2 i n-1. Točan broj koji odaberete nije važan - samo da mora biti manji od n i veći od 1.
    • U našem primjeru s n = 321 odabiremo a = 100.
  4. izračunati a (mod n). Ako a = 1 ili -1 (mod n), a zatim prolazi n Miller-Rabinov test i je vjerojatno prost broj. Kao i kod Fermatova malog teorema, i ovaj test ne može sa apsolutnom sigurnošću utvrditi primalnost broja, ali zahtijeva dodatna ispitivanja.
    • U našem primjeru s n = 321, a (mod n) = 100 (mod 321). 100 = 10 000 000 000 (mod 321) = 313. Za pronalazak ostatka 100/321 koristimo poseban kalkulator ili stenografsku metodu s eksponentom kako je ranije opisano.
      • Budući da nismo dobili 1 ili -1, ne možemo sa sigurnošću reći da je n prost. Ali još uvijek trebamo učiniti više - čitajte dalje.
  5. Budući da rezultat nije jednak 1 ili -1, izračunajte a, a, ... i tako dalje, do ad. Izračunajte povišeno na stepen d puta, do 2. Ako je bilo koji od ovih jednak 1 ili -1 (mod n), a zatim prolazi n Miller-Rabin testovima i vjerojatno je prvorazredan. Ako ste utvrdili da n prolazi test, provjerite svoj odgovor (pogledajte korak u nastavku). Ako n ne uspije niti jedan od ovih testova, to je jedan sastavljeno broj.
    • Podsjećamo, u našem primjeru vrijednost a je 100, vrijednost s je 6, a d je 5. Nastavljamo testiranje kako je prikazano u nastavku:
      • 100 = 1 × 10.
        • 1 × 10 (mod 321) = 64,64 ≠’ 1 ili -1. Nastavite mirno.
      • 100 = 1 × 10.
        • 1 × 10 (mod 321) = 244,244 1 ili -1.
      • U ovom trenutku možemo stati. s - 1 = 6 - 1 = 5. Sada smo dosegli 4d = 2 i nema moći 2 puta d ispod 5d. Budući da niti jedan naš izračun nije odgovorio na 1 ili -1, možemo reći da je n = 321 sastavljeno broj je.
  6. Ako n prolazi test Miller-Rabin, ponovite za ostale vrijednosti a. Ako ste utvrdili da vrijednost n može biti prosta, pokušajte ponovno s drugom, slučajnom vrijednošću za a da biste potvrdili rezultat testa. Ako je n zapravo prost, to će biti istina za bilo koju vrijednost a. Ako je n složeni broj, neće uspjeti za tri četvrtine vrijednosti a. To vam daje veću sigurnost od Fermatova malog teorema, gdje su određene složeni brojevi (Carmichaelovi brojevi) prolaze test za bilo koju vrijednost a.

Metoda 4 od 4: Korištenje kineskog teorema o ostatku

  1. Odaberite dva broja. Jedan od brojeva nije prost, a drugi je broj koji se ispituje na primarnost.
    • "Test broj1" = 35
    • Broj testa2 = 97
  2. Odaberite dvije podatkovne točke veće od nule, odnosno manje od TestNumber1 i TestNumber2. Ne mogu biti međusobno jednaki.
    • Podaci1 = 1
    • Podaci2 = 2
  3. Izračunajte MMI (Matematički multiplikativni inverzni) za test broj 1 i test broj 2
    • Izračunajte MMI
      • MMI1 = Broj ispitivanja2 ^ -1 Mod test broj1
      • MMI2 = Testni broj1 ^ -1 Modni testni broj2
    • Samo za proste brojeve (ishod će biti za nebrojeve, ali to nije MMI):
      • MMI1 = (TestNumber2 ^ (TestNumber1-2))% TestNumber1
      • MMI2 = (TestNumber1 ^ (TestNumber-2))% TestNumber2
    • Tako:
      • MMI1 = (97 ^ 33)% 35
      • MMI2 = (35 ^ 95)% 97
  4. Stvorite binarnu tablicu za svaki MMI do Log2 modula
    • Za MMI1
      • F (1) = Broj testa2% Broj testa1 = 97% 35 = 27
      • F (2) = F (1) * F (1)% Broj testa1 = 27 * 27% 35 = 29
      • F (4) = F (2) * F (2)% Broj testa1 = 29 * 29% 35 = 1
      • F (8) = F (4) * F (4)% Broj ispitivanja1 = 1 * 1% 35 = 1
      • F (16) = F (8) * F (8)% Broj testa1 = 1 * 1% 35 = 1
      • F (32) = F (16) * F (16)% Broj testa1 = 1 * 1% 35 = 1
    • Izračunajte binarni logaritam TestNumber1 - 2
      • 35 -2 = 33 (10001) baza 2
      • MMI1 = F (33) = F (32) * F (1) mod 35
      • MMI1 = F (33) = 1 * 27 Mod 35
      • MMI1 = 27
    • Za MMI2
      • F (1) = Broj testa1% Broj testa2 = 35% 97 = 35
      • F (2) = F (1) * F (1)% Broj ispitivanja2 = 35 * 35 mod 97 = 61
      • F (4) = F (2) * F (2)% Broj ispitivanja2 = 61 * 61 mod 97 = 35
      • F (8) = F (4) * F (4)% Broj ispitivanja2 = 35 * 35 mod 97 = 61
      • F (16) = F (8) * F (8)% Broj ispitivanja2 = 61 * 61 mod 97 = 35
      • F (32) = F (16) * F (16)% Broj ispitivanja2 = 35 * 35 mod 97 = 61
      • F (64) = F (32) * F (32)% Broj ispitivanja2 = 61 * 61 mod 97 = 35
      • F (128) = F (64) * F (64)% Broj ispitivanja2 = 35 * 35 mod 97 = 61
    • Izračunajte binarni logaritam TestNumber2 - 2
      • 97 - 2 = 95 = (1011111) baza 2
      • MMI2 = ((((((F (64) * F (16)% 97) * F (8)% 97) * F (4)% 97) * F (2)% 97) * F (1)% 97)
      • MMI2 = ((((((35 * 35)% 97) * 61)% 97) * 35% 97) * 61% 97) * 35% 97)
      • MMI2 = 61
  5. Izračunaj (Data1 * TestNumber2 * MMI1 + Data2 * TestNumber1 * MMI2)% (TestNumber1 * TestNumber)
    • Odgovor = (1 * 97 * 27 + 2 * 35 * 61)% (97 * 35)
    • Odgovor = (2619 + 4270)% 3395
    • Odgovor = 99
  6. Provjerite da "TestNumber1" nije prost1
    • Izračunaj (odgovor - podatak1)% broja testa1
    • 99 -1 % 35 = 28
    • Budući da je 28 veće od 0, 35 nije jednostavno
  7. Provjerite je li TestNumber2 prosti
    • Izračunaj (odgovor - podatak2)% broja testa2
    • 99 - 2 % 97 = 0
    • Budući da je 0 jednako 0, 97 je potencijalni prosti broj
  8. Ponovite korake od 1 do 7 još najmanje dva puta.
    • Ako je korak 7 jednak 0:
      • Upotrijebite drugi "TestNumber1" ako TestNumber1 nije prost.
      • Upotrijebite drugi TestNumber1 gdje je TestNumber1 zapravo glavni. U ovom su slučaju koraci 6 i 7 jednaki 0.
      • Koristite različite podatkovne točke za podatke1 i podatke2.
    • Ako je korak 7 uvijek jednak 0, tada je vjerojatnost da je broj 2 prost broj vrlo velika.
    • Poznato je da su koraci od 1. do 7. netočni u određenim slučajevima kada prvi broj nije prost, a drugi je glavni faktor nebrojnog broja "Test Number1". Radi u svim scenarijima gdje su oba broja prosta.
    • Razlog zbog kojeg se koraci od 1. do 7. ponavljaju jest taj što postoji nekoliko scenarija u kojima, čak i ako TestNumber1 nije prost, a TestNumber2 nije prost, bilo koji broj iz 7. koraka i dalje je nula. Ta su stanja rijetka. Promjenom TestNumber1 u drugi ne-prosti broj, ako TestNumber2 nije prost, TestNumber2 više neće biti jednak nuli, u koraku 7. Osim u slučaju kada je "TestNumber1" faktor TestNumber2, prosti brojevi uvijek će biti nula. korak 7.

Savjeti

  • 168 osnovnih brojeva ispod 1000 su: 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, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997
  • Kada je pokušaj dijeljenja sporiji od sofisticiranijih metoda, i dalje je učinkovit za manje brojeve. Čak i prilikom testiranja većih brojeva, nije rijetko prvo provjeriti male brojeve prije prelaska na naprednije metode.

Potrebe

  • Papir, olovka, olovka i / ili kalkulator za izradu