Melayani Dengan Nurani

IA

26 Oktober 2016

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.
Reactions:

0 comments:

Posting Komentar

Nuhun sudah komentar