Algoritma/Program Pascal: Menentukan Jumlah/Banyaknya Bilangan Prima dari Satu s/d Jumlah Bilangan Tertentu
Definisi bilangan prima adalah bilangan yang hanya habis dibagi oleh dirinya sendiri.
Tepatnya bilangan prima adalah bilangan asli yang lebih besar dari satu (1) yang hanya dapat dibagi dengan satu dan bilangan itu sendiri.
Artinya, jika suatu bilangan masih dapat dibagi dengan selain bilangan 1 dan bilangan itu sendiri maka bilangan tersebut bukan termasuk bilangan prima. :
contoh:
1 bukan prima per definisi
2 bilangan prima
3 bilangan prima
5 bilangan prima
7 bilangan prima
9 bukan bilangan prima karena habis dibagi 3
11bilangan prima
13bilangan prima
15 bukan prima, bisa dibagi 5
dst...
Tampak dari deret angka, bilangan prima adalah bilangan ganjil (kecuali 2) yang hanya habis dibagi oleh dirinya sendiri tidak boleh habis dibagi oleh bilangan lain.
prosesnya adalah looping dari angka 1 sampai suatu angka tertent.
periksa apakah bilangan itu ganjil ? (dengan perintah mod 2)
Jika ya apakah bilangan itu habis dibagi oleh bilangan itu sendiri, bagaimana logikanya ??
jika ya hitung jumprima=jumprima+1
jika tidak ganjil apakah bilangan itu = 2 , jika ya jumprima=jumprima+1
terus...bagaimana ?
Eeeh ada Tips/Notes begini :
Untuk mempermudah kita dalam menentukan mana yang bilangan prima dan mana yang bukan bilangan prima dapat dilakukan dengan cara yang praktis dan mudah yakni dengan cara menambahkan angka 6 pada bilangan prima yang ke-3 ( 5 ) dan ke-4 ( 7 ) dengan syarat apabila ada hasil dari bilangan prima ditambah 6 adalah bilangan yang habis jika dibagi 5 dan atau dibagi 7 maka pasti itu bukan bilangan prima.
sumber (ilmu-matematika.com)
Berdasarkan pertimbangan itu maka dibuatlah algoritma dan pemrogramannya sebagai berikut.
program prima;
uses wincrt;
var
bilangan, i, hasil,hasil2, prima, prima1,k: integer;
begin
write('Masukan angka/bilangan yang akan diperiksa jumlah bilangan primanya : ');readln(bilangan);
prima:=5 ; prima1:=7 ;
writeln ('Bilangan prima ke-1 ', 2);
writeln ('Bilangan prima ke-2 ', 3);
writeln ('Bilangan prima ke-3 ', 5);
writeln ('Bilangan prima ke-4 ', 7);
k :=4 ;
for i:=1 to bilangan-7 do
begin
hasil:= i mod 5;
hasil2:= i mod 7;
if ((hasil=0) or (hasil2=0) ) then
begin
prima:= prima + 6;
prima1:= prima1 + 6;
if ( not ((prima mod 5 = 0) or (prima mod 7 = 0))) then
begin
k:= k+1 ;
writeln('Bilangan prima ke-',k,' ',prima);
if ( not ((prima1 mod 5 = 0) or (prima1 mod 7 = 0)) ) then
begin
k:= k+1 ;
writeln('Bilangan prima ke-',k,' ',prima1);
end
end
else
if ( not (prima mod 7 = 0)) then
begin
k:= k+1 ;
writeln('Bilangan prima ke-',k,' ',prima1);
end
end
end
end.
Tepatnya bilangan prima adalah bilangan asli yang lebih besar dari satu (1) yang hanya dapat dibagi dengan satu dan bilangan itu sendiri.
Artinya, jika suatu bilangan masih dapat dibagi dengan selain bilangan 1 dan bilangan itu sendiri maka bilangan tersebut bukan termasuk bilangan prima. :
contoh:
1 bukan prima per definisi
2 bilangan prima
3 bilangan prima
5 bilangan prima
7 bilangan prima
9 bukan bilangan prima karena habis dibagi 3
11bilangan prima
13bilangan prima
15 bukan prima, bisa dibagi 5
dst...
Tampak dari deret angka, bilangan prima adalah bilangan ganjil (kecuali 2) yang hanya habis dibagi oleh dirinya sendiri tidak boleh habis dibagi oleh bilangan lain.
prosesnya adalah looping dari angka 1 sampai suatu angka tertent.
periksa apakah bilangan itu ganjil ? (dengan perintah mod 2)
Jika ya apakah bilangan itu habis dibagi oleh bilangan itu sendiri, bagaimana logikanya ??
jika ya hitung jumprima=jumprima+1
jika tidak ganjil apakah bilangan itu = 2 , jika ya jumprima=jumprima+1
terus...bagaimana ?
Eeeh ada Tips/Notes begini :
Untuk mempermudah kita dalam menentukan mana yang bilangan prima dan mana yang bukan bilangan prima dapat dilakukan dengan cara yang praktis dan mudah yakni dengan cara menambahkan angka 6 pada bilangan prima yang ke-3 ( 5 ) dan ke-4 ( 7 ) dengan syarat apabila ada hasil dari bilangan prima ditambah 6 adalah bilangan yang habis jika dibagi 5 dan atau dibagi 7 maka pasti itu bukan bilangan prima.
sumber (ilmu-matematika.com)
Berdasarkan pertimbangan itu maka dibuatlah algoritma dan pemrogramannya sebagai berikut.
program prima;
uses wincrt;
var
bilangan, i, hasil,hasil2, prima, prima1,k: integer;
begin
write('Masukan angka/bilangan yang akan diperiksa jumlah bilangan primanya : ');readln(bilangan);
prima:=5 ; prima1:=7 ;
writeln ('Bilangan prima ke-1 ', 2);
writeln ('Bilangan prima ke-2 ', 3);
writeln ('Bilangan prima ke-3 ', 5);
writeln ('Bilangan prima ke-4 ', 7);
k :=4 ;
for i:=1 to bilangan-7 do
begin
hasil:= i mod 5;
hasil2:= i mod 7;
if ((hasil=0) or (hasil2=0) ) then
begin
prima:= prima + 6;
prima1:= prima1 + 6;
if ( not ((prima mod 5 = 0) or (prima mod 7 = 0))) then
begin
k:= k+1 ;
writeln('Bilangan prima ke-',k,' ',prima);
if ( not ((prima1 mod 5 = 0) or (prima1 mod 7 = 0)) ) then
begin
k:= k+1 ;
writeln('Bilangan prima ke-',k,' ',prima1);
end
end
else
if ( not (prima mod 7 = 0)) then
begin
k:= k+1 ;
writeln('Bilangan prima ke-',k,' ',prima1);
end
end
end
end.
Komentar
Posting Komentar
Nuhun sudah komentar