Bilangan prima merupakan suatu bilangan khusus dimana bilangan tersebut tidak dapat hapis dibagi oleh bilangan

manapun kecuali bilangan itu sendiri dan 1. Saat ini banyak algoritma yang dapat digunakan untuk menentukan suatu bilangan termasuk prima atau bukan. Salah satu algoritma tersebut adalah Sieve of Eratosthenes,. Mungkin ini bukan algoritma yang tercepat, tapi setidaknya sudah cukup cepat dibanding jika menggunakan modulus.

Dan berikut ini contoh penerapan algoritma di atas dalam bahasa pemrograman PHP. Script ini sudah ditest untuk menampilkan bilangan prima dibawah 1.000.000 dan berhasil menampilkannya dalam waktu 3 detik. view source print?
01 <?php 02 function bilangan_prima($limit) { 03 $prima = array(); 04 for ($i=2; $i<=$limit; $i++) 05 $prima[$i] = true; 06 $akarLimit = (int)sqrt($limit); 07 for ($i=2; $i<=$akarLimit; $i++) { 08 if ($prima[$i]) { 09 for ($j=$i*$i; $j<=$limit; $j+=$i) { 10 $prima[$j] = false; 11 } 12 } 13 } 14 $i = 0; 15 foreach ($prima as $bilangan=>$status) { 16 if ($status) { echo "$bilangan ";$i++; } 17 } 18 echo "Jumlahnya:". $i; 19 } 20 21 $start=mktime(); 22 bilangan_prima(1000000); //menampilkan bilangan prima dari 1 - 1 juta 23 $finish=mktime(); 24 $result=$finish-$start; 25 echo "Time: $result seconds";

Ulangi langkah 4 sampai semua bilangan di daftar A sudah tercoret. Lalu coret 2 dan semua kelipatannya dari daftar A Bilangan pertama yang belum tercoret dari daftar A (misalnya 3) adalah bilangan prima. semua bilangan di daftar B adalah bilangan prima. sebut saja daftar B. mulai dari 1 sampai n. . Setelah selesai. Coret bilangan 1 dari daftar A. lalu coret bilangan ini dan semua kelipatannya dari daftar A. Tulis bilangan ini di daftar B. 2. Lalu tulis 2 pada daftar B. 3. 5. 6. 4.26 ?> \\ Penjelasan Algoritma: Misalkan kita hendak menemukan semua bilangan prima di antara 1 sampai suatu bilangan bulat n. Misalkan ini adalah daftar A. Tulis semua bilangan. Buat suatu daftar yang masih kosong. 1.

Sign up to vote on this title
UsefulNot useful