Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> liczby pierwsze
Jabol
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


temat wydzielony od: http://forum.php.pl/viewtopic.php?t=9078
Chodzi o sprawdzanie licz czy są pierwsze.

Cytat
Najprosciej (choc nie najwydajniej) sprawdzic podzielnosc liczby X przez wszystkie liczby calkowite od 2 do sqrt(X) (sqrt - pierwiastek kwadratowy). Jesli się przez ktorakolwiek z nich dzieli to nie jest to liczba pierwsza (wyjatkiem jest liczba 2, ktora jest liczba pierwsza).
Najprościej jest podzielić przez wszystkie liczy pierwsze mniejsze od sqrt(X) i większe od 2.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cudi
post
Post #2


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


Niom, niestety masz racje. Przepisałem algorytm z podanej strony na php:
[php:1:cf773fee3d]<?php
$intX = 10000; // ilosc liczb do przecedzenia przez sito
$arrPrimes = range( 1, $intX );

for( $i = 2; $i <= $intX; $i++ )
{
$z = 2;

while( $i * $z <= $intX )
{
unset( $arrPrimes[ array_search( ( $i * $z ), $arrPrimes ) ] );
$z++;
}
}
?>[/php:1:cf773fee3d]
I niestety dla 10000 liczb pierwszych czas wynosi ok. 20 sekund (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ale jeśli chcemy wypisac tylko określoną ilość liczb pierwszych to taki czas jest chyba zadowalający (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie
- Jabol   liczby pierwsze   26.12.2003, 09:53:04
- - FiDO   Re: Perl- kilka pytań.   27.12.2003, 00:24:42
- - s_w_ir   Dobra dzięki za te odpowiedzi. A czy macie rozwiąz...   27.12.2003, 21:32:53
- - DeyV   z przykrością muszę stwierdzić, że rozsądne wykona...   27.12.2003, 21:45:15
- - Cudi   Temat jest ciekawy, jedak eksperyment który opisuj...   27.12.2003, 22:50:16
- - Jabol   mam program w C, który generuje ustaloną liczbę li...   28.12.2003, 09:50:18
- - s_w_ir   Z bratem opracowaliśmy że każda liczba nie pierwsz...   28.12.2003, 21:08:36
- - FiDO   CytatZ bratem opracowaliśmy że każda liczba nie pi...   29.12.2003, 16:25:46
- - s_w_ir   No to teraz dopiero się fatalnie poczułem. widać j...   29.12.2003, 19:19:49
- - Cudi   Tak jak napisałem można skorzystać z metody sita E...   29.12.2003, 19:44:43
- - FiDO   Sa wydajne algrgorytmy na sprawdzanie (a przynajmn...   29.12.2003, 20:19:03
- - Cudi   Niom, niestety masz racje. Przepisałem algorytm z ...   29.12.2003, 20:35:10
- - milosh   Witam, Zainteresowała mnie ta dyskusja, wiec posta...   29.12.2003, 23:50:23
- - s_w_ir   To ja mam na 100% pewny kod i na 100% nie wydajny ...   30.12.2003, 11:23:48
- - FiDO   Teraz to sie nie popisales W tej metodzie (typow...   30.12.2003, 17:54:08
- - milosh   CytatWidzisz ale tu nie wykluczasz brak licz pseud...   30.12.2003, 19:53:43
- - dr_bonzo   CytatZ bratem opracowaliśmy że każda liczba nie pi...   21.05.2004, 21:47:24
- - Jabol   285311670611=11*11 niestety, nie zadziałało   21.05.2004, 22:13:46
- - PMadej   przeciez to nie sa liczby pierwsze: 39 = 3 * 13 14...   22.05.2004, 00:33:31
- - matys   Ja napisałem w C++ program, który sprawdza, czy po...   22.05.2004, 09:18:51
- - Cudi   PMadej: Nie zrozumiałeś go, idź przeczytaj jeszcze...   22.05.2004, 09:50:25
- - dr_bonzo   Cytat285311670611=11*11 niestety, nie zadziałało t...   22.05.2004, 09:52:38
- - Jabol   ale zauważ, że ta liczba którą podałem też da się ...   22.05.2004, 13:06:00
- - raf2001   Witam! Wtrące się do rozmowy (jeżeli to co powiem...   22.05.2004, 13:59:27


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 19:36