![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Witam. Chciałbym zrobić generator liczb pierwszych do miliona. Liczba pierwsza to ta która dzieli się przez siebie i przez 1 czyli w sumie mam dwa dzielniki. Głowie się nad tym już parę godzin i nic dobrego nie wymyśliłem. Oto co zdołałem zrobić:
Czy ktoś mógłby mnie naprowadzić na opracowanie dobrego skryptu?? Proszę o pomoc. |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
do miliona... szok no ale jak chcesz... ja mam cos takiego:
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Mozna to uproscic obliczeniowo, bo wystarczy sprawdzac dzielniki od 2 do pierwsiastka z liczby a nie do liczby:
ps. jedynka jak wiadomo liczba pierwsza nie jest (liczba wg definicji to liczba naturalna, ktora ma dokladnie 2 rozne dzielniki naturalne: 1 i siebie)
Ten post edytował ddiceman 31.07.2008, 10:33:34 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Prawda jest taka, że sprawdzając warto skakać od cyfry 3 co 2. Przy wyłuskiwaniu liczb pierwszych.
Przy sprawdzaniu kolejnych warto na samym początku dać if liczba % 2 == 0, jeśli nie to w pętli również skaczemy od 3 co 2 elementy Wiadomo, że 4, 14314, 141412412 nie są pierwsze. Na wstępie więc można je odrzucić. A jeśli coś dzieli się przez parzystą liczbę, to dzieli się również przez cyfrę 2, wystarczy więc sprawdzić tylko ten warunek. Nie chce mi się modyfikować Waszych algorytmów, ale pozwoli to zaoszczędzić może nie tak dużo, ale zawsze trochę czasu ![]() Ten post edytował Shili 31.07.2008, 11:47:27 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 12:52 |