Program Faktor_Perseketuan_Besar;
uses crt;
type
larik = array [1..100] of integer;
var
Bil1,Bil2,i,j,sb,jfb1,jfb2,jfpb : integer;
fb1,fb2,fpb : larik;
begin
clrscr;
REPEAT
BEGIN
WRITE (‘Masukan Bilangan Pertama (1..1000) : ‘);READLN(Bil1);
END;
UNTIL (Bil1 >= 1 );
REPEAT
BEGIN
WRITE (‘Masukan Bilangan Kedua (1..1000) : ‘);READLN(Bil2);
END;
UNTIL (Bil2 >= 1 );
writeln(”);
jfb1 := 0;
for i:= 1 to Bil1 do
begin
sb := Bil1 Mod i;
if sb = 0 then
begin
jfb1 := jfb1 + 1;
fb1[jfb1] := Bil1 DIV i;
end;
end;
jfb2 := 0;
for i:= 1 to Bil2 do
begin
sb := Bil2 Mod i;
if sb = 0 then
begin
jfb2 := jfb2 + 1;
fb2[jfb2] := Bil2 DIV i;
end;
end;
jfpb := 0;
for i:= jfb1 downto 1 do
begin
for j:= jfb2 downto 1 do
begin
if fb1[i]=fb2[j] then
begin
jfpb := jfpb + 1;
fpb[jfpb] := fb1[i];
end;
end;
end;
write(‘Faktor Bilangan ‘,Bil1,’ adalah ‘);
for i:= jfb1 downto 1 do
begin
write (fb1[i],’ ‘);
end;
writeln(”);
write(‘Faktor Bilangan ‘,Bil2,’ adalah ‘);
for i:= jfb2 downto 1 do
begin
write (fb2[i],’ ‘);
end;
writeln(”);
write(‘Faktor Bilangan ‘,Bil1,’ & ‘,Bil2,’ yg sama adalah ‘);
for i:= 1 to jfpb do
begin
write(fpb[i],’ ‘);
end;
writeln(”);
writeln(”);
writeln(‘Faktor Pesekutuan Terbesar Bilangan ‘,Bil1,’ dan ‘,Bil2,’ adalah ‘,fpb[jfpb]);
writeln(”);
end.
Jika dijalankan program di atas :
Masukan Bilangan Pertama (1..1000) : 30
Masukan Bilangan Kedua (1..1000) : 72
Faktor Bilangan 30 adalah 1 2 3 5 6 10 15 30
Faktor Bilangan 72 adalah 1 2 3 4 6 8 9 12 18 24 36 72
Faktor Bilangan 30 & 72 yg sama adalah 1 2 3 6
Faktor Pesekutuan Terbesar Bilangan 30 dan 72 adalah 6