BILANGAN PRIMA
March 28, 2008 Achmad Solichin PHP, Umum 21 comments
1. Tulis semua bilangan, mulai dari 1 sampai n. Misalkan ini adalah daftar
A.
2. Buat suatu daftar yang masih kosong, sebut saja daftar B.
3. Coret bilangan 1 dari daftar A.
4. Lalu tulis 2 pada daftar B. Lalu coret 2 dan semua kelipatannya dari
daftar A
5. Bilangan pertama yang belum tercoret dari daftar A (misalnya 3) adalah
bilangan prima. Tulis bilangan ini di daftar B, lalu coret bilangan ini dan semua
kelipatannya dari daftar A.
6. Ulangi langkah 4 sampai semua bilangan di daftar A sudah tercoret.
Code block
1. <?php
2.
3. function bilangan_prima($limit) {
4. $prima = array();
5. $prima_awal = array(2,3,5,7);
6.
7. for ($i=2; $i<=$limit; $i++)
8. $prima[$i] = true;
9.
10. foreach ($prima_awal as $awal) {
11. for ($i=2*$awal; $i<=$limit; $i+=$awal) {
12. $prima[$i] = false;
13. }
14. }
15.
16. foreach ($prima as $bilangan=>$status) {
17. if ($status) echo "$bilangan ";
18. }
19. }
20. $start=mktime();
21.
22. bilangan_prima(1000000);
23.
24. $finish=mktime();
25. $result=$finish-$start;
26. echo "<br>Time: $result seconds";
27.
28. ?>
Semoga bermanfaat
http://achmatim.net/2008/03/28/algoritma-tercepat-mencetak-bilangan-prima/