Jumat, 02 Maret 2012

Program Bilangan_Prima; (pascal)


Program Bilangan_Prima;

    Uses crt;

    Var

    i,j,m,n, batas,jml: integer;

    (*i,j,m,n adalah variabel bantu untuk perulangan*)

    (*jml adalah vvariabel bantu untuk menyimoan nilai jumlahan

    dari bil prima*)

    prima: boolean;

    (*mendifinisikan variabel prima bertipe boolean*)

    prim:array[1..100] of integer;

    (*mendefinisikan variabel prim yang berisi 1 sampai 100

    elemen bertipe integer*)

    Begin

    write('bilangan prima sampai suku ke: '); readln(n);

    (*memasukkan jumlah bilanga prima yang akan ditampilkan*)

    writeln('sebagai berikut: ');

    i:=3;

    prim[1]:=2;

    (*suku pertama bilangan prima didefinisikan sama dengan 2*)

    prim[2]:=3;

    (*suku kedua bilangan prima didefinisikan sama dengan 3*)

    m:=2;

    (*pemberian nilai m = 2*)

    Repeat

    i:=i+1;

    (*menaikkan nilai i sebanyak 1 sampai mendapat bil prima

    sebanyak n*)

    batas:=round(sqrt(i))+1;

    (*rumus mencari batas dengan rumus yang telah ditentukan,

    digunakan untuk proses perulangan*)

    (*round adalah pembulatan bilangan pecahan*)

    (*sqrt adalah akar*)

    prima:=true;

    (*mendefinisikan prima bernilai true*)

    For j:= 2 to batas do

    if i mod j = 0 then

    (*mengecek apakah i dibagi j sama dengan 0*)

    prima:=false;

    (*jika habis dibagi, maka bukan termasuk bilangan prima*)

    if prima = true then

    Begin

    m:=m+1;

    (*dimulai dari suku ke-3(m=2)*)

    prim[m]:=i;

    (*array ke-m sama dengan suku ke-i*)

    end;

    until m=n;

    For i:=1 to n do

    (*perulangan untuk mencetak bil prima dan mencari jumlahan bil primanya*)

    Begin

    write(prim[i], ' ');

    (*mencetak bilangan prima suku ke-1 sampai ke-n*)

    jml:=jml+prim[i];

    (*mencari jumlahan dari bilangan prima yang ditampilkan

    dengan rumus yang telah ditentukan*)

    end;

    writeln;

    writeln('jumlah bil prima: ',jml);

    (*mencetak hasik penjumlahan bilangan prima*)

    readln;

    end.

Tidak ada komentar:

Posting Komentar