Contoh
2 3
/ \ / \ ...................dst
1 2 1 3
Dalam logika program, setiap bilangan harus dievaluasi semua kemungkinan faktor pembaginya.
2 3 4 5
/ \ / | \ / / \ \ / / | \ \ .................dst
1 2 1 2 3 1 2 3 4 1 2 3 4 5
Perhatikan angka yang hijau dan merah , angka yang tepat mempunyai 2 warna hijau itulah bilangan Prima ( Sesuai syarat bilangan prima : habis dibagi oleh 1 dan dirinya sendiri) .
Dari contoh diatas , setiap bilangan dievaluasi semua faktor pembaginya, jadi kalo dengan PHP akan perlu 2 looping (nested)
Loop #1 sebagai angka yg akan dicek apakah prima atau bukan
Loop #2 semua angka kemungkinan faktor pembagi dari angka yg akan dicek
Contoh , jika angka yang akan di cek adalah 5 , maka kita harus cek faktor pembagi nya mulai dari 1-5 ( 1,2,3,4,5)
PHP
function prima($n){
for($i=1;$i<=$n;$i++){ //smw angka yg akan di cek
$counter = 0;
for($j=1;$j<=$i;$j++){ //smw kemungkinan faktor pembagi
//jika angka yg akan dicek habis dibagi faktor pembagi, counter nya +1
if($i % $j==0){
$counter++;
}
}
//jumlah warna hijau / faktor habis bagi nya harus 2
if($counter==2){
print $i." is Prime
";
}
}
}
prima(20); //cari bilang prima dari 1-20
Output kode diatas adalah :
2 is Prime
3 is Prime
5 is Prime
7 is Prime
11 is Prime
13 is Prime
17 is Prime
19 is Prime
NB : cara diatas sebenarnya kurang optimal untuk angka yang besar, ada cara lain disini Mencari Bilangan Prima,Fibonaci Dan Faktorial Dengan Bahasa C
Thanks