Beberapa referensi yang penulis dapat menyatakan bahwa bilangan prima merupakan
bilangan positif yang hanya bisa dibagi oleh tepat 2 pembagi, yaitu angka 1 dan angka
tersebut sendiri. Ada juga yang menyatakan sebagai suatu bilangan yang hanya bisa dibagi
oleh dirinya sendiri tanpa menyertakan angka 1.
Contoh: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89,
97 dan seterusnya.
Contoh: 9
Bilangan sebagai pembagi adalah 2 3 4 5 6 7 8
Untuk mengetahui bahwa suatu bilangan bisa dibagi atau tidak, paling mudah kita
menggunakan bantuan mod, yang menyatakan sisa hasil bagi. Jika sisa hasil bagi 0 berarti
bisa dibagi.
Kembali ke contoh.
9 mod 3 =0 (sudah cukup untuk menyimpulkan bahwa 9 adalah bukan bilangan prima.)
Tidak perlu kita uji dengan membagi 9 dengan angka 4 dan seterusnya.
Contoh lain: 11
11 mod 2 = 1
11 mod 3 = 2
11 mod 4 = 3
11 mod 5 = 1
11 mod 6 = 5
11 mod 7 = 4
11 mod 8 = 3
11 mod 9 = 2
11 mod 10 = 1
KAMUS
i : integer
bil : integer
prima : boolean
ALGORITMA
prima ← false
input (bil)
if (bil=2) then
prima ← true
else
for i ← 2 to bil-1 do
if (bil mod i = 0) then
prima ← false
exit for // keluar dari looping
else
prima ← true
endif
endfor
endif
Bagaimana kalau soal kita kembangkan, menampilkan bilangan prima dari bilangan sekian
sampai sekian. Maka tinggal kita kombinasikan dengan looping juga.
Source Code C++.
?
1 #include <iostream>
2 /* ------------------------------
3 Developed by Galih Hermawan
4 Website: http://galih.eu
5 ------------------------------ */
6 using namespace std;
7 int main()
8 {
9 int i, j, min, max, jum=0, total=0;
1 float rata;
0 bool prima;
1 cout << "Masukkan nilai batas bawah: ";
cin >> min;
1
cout << "Masukkan nilai batas atas: ";
1 cin >> max;
2
while (min > max)
1 {
3 cout << "\n\nBatas atas harus lebih besar dari batas bawah.\nMasukkan
1 nilai batas atas: ";
4 cin >> max;
1 }
5 cout << endl;
1 for (i=min;i<=max;i++)
6 {
1 prima=false;
7 if (i==2)
1 prima=true;
8 else
1 {
9 for (j=2;j<i;j++)
2 {
0 if (i % j==0)
{
2
prima=false;
1
break; // keluar dari looping
2 }
2 else
2 prima=true;
3 }
2 }
4 if (prima) // prima = true
2 {
5 cout << i << "\t";
2 jum+=1; // menghitung banyaknya bilangan prima
6 total+=i; // total jumlah dari seluruh bil. prima
2 }
7 }
2 cout << endl;
8 cout.setf(ios::fixed);
cout.setf(ios::showpoint);
2
cout.precision(2);
9 rata=(float)total/jum;
3
cout << "\nTerdapat " << jum << " bilangan dengan total " << total;
0
cout << "\nRata-ratanya " << rata << endl;
3
system ("PAUSE");
1
return 0;
3 }
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
6
1
6
2
6
3
6
4
Contoh tampilan:
Source Code Java.
?
1 import java.util.Scanner;
2 /* ------------------------------
3 Developed by Galih Hermawan
4 Website: http://galih.eu
5 ------------------------------ */
6 public class DeretPrima
7 {
8 public static void main( String[] args )
9 {
1 Scanner input = new Scanner( System.in );
0 int i, j, min, max, jum=0, total=0;
1 float rata;
1 boolean prima;
1 System.out.print("Masukkan nilai batas bawah: ");
min = input.nextInt();
2
System.out.print("Masukkan nilai batas atas: ");
1
max = input.nextInt();
3
while (min > max)
1 {
4 System.out.print("\n\nBatas atas harus lebih besar dari batas
1 bawah.\nMasukkan nilai batas atas: ");
5 max = input.nextInt();
1 }
6 System.out.print("\n");
1 for (i=min;i<=max;i++)
7 {
1 prima=false;
8 if (i==2)
1 prima=true;
9 else
2 {
0 for (j=2;j<i;j++)
2 {
1 if (i % j==0)
2 {
2 prima=false;
break; // keluar dari looping
2
3 }
2 else
4 prima=true;
2 }
5 }
2 if (prima) // prima = true
6 {
System.out.printf("%d\t",i);
2
jum+=1; // menghitung banyaknya bilangan prima
7 total+=i; // total jumlah dari seluruh bil. prima
2 }
8 }
2 rata=(float)total/jum;
9 System.out.printf("\n\nTerdapat %d bilangan dengan total %d.",jum,total);
3 System.out.printf("\nRata-ratanya %5.2f",rata);
0 }
3 }
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
4
1
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
5
0
5
1
5
2
5
3
5
4
5
5
5
6
5
7
5
8
5
9
6
0
Contoh tampilan: