function func(x:integer):integer; var i : integer; b : boolean; begin b:= true; i := 1; while b=true do begin if (x mod i) <> 0 then begin func := i; b:=false; end; inc(i); end; end;
-
Tentukan nilai dari
func(4620)
. -
Tentukan nilai
x
positif terkecil di manafunc(x)
= 11. -
Tentukan bilangan
x
positif terkecil ke-11 di manafunc(x)
= 11. -
Dengan mengasumsikan tipe integer adalah tipe bilangan bulat yang tidak memiliki batasan, berikan sepuluh nilai
x
positif terkecil di mana tidak ada angka positify
sehinggafunc(y)
=x
.
-
Untuk func(4620):
4620 dapat dibagi oleh 1,2,3,4,5,6 dan 7 namun tidak dapat dibagi oleh 8. Sehingga nilai dari func(4620) adalah 8. -
Jika hasil dari fungsi adalah 11, maka x dapat dibagi oleh 1,2,3,4 sampai 10. Artinya bilangan itu adalah KPK dari 10 bilangan tersebut. Bilangan 1-10 dapat ditulis dengan:
1, 2, 3, 22, 5, 2×3, 7, 23, 32, 2×5.
Sehingga didapat KPK sepuluh bilangan itu adalah 23 x 32 x 5 x 7 = 2520. -
Bilangan ke-11 yang dimaksud haruslah merupakan kelipatan KPK(1,2,..10) namun bukan kelipatan 11.
Bilangan terkecil yang memenuhi adalah 2520. Berikutnya 2*2520, 3*2520, 4*2520 dan seterusnya sampai 10*2520. Karena 11*2520 dapat dibagi dengan 11, maka gunakan bilangan berikutnya, yaitu 12*2520 = 30240. -
func(y) = x apabila x adalah bilangan terkecil yang bukan merupakan faktor dari y dan y merupakan KPK dari 1,2,…,x-1. Sehingga bilangan yang tidak mungkin muncul adalah bilangan yang dapat membagi KPK(1,2,…,x-1). Oleh karena itu x haruslah merupakan KPK dari minimal dua bilangan daru 1 sampai x-1 dan x ≤ KPK(1,2,…,x-1).
Dalam pengecualian, 1 masuk ke bilangan yang dimaksud karena 1 bisa membagi semua bilangan. Kemudian jika dituliskan 10 bilangan dalam faktorisasi prima akan menjadi:
1, 2, 3, 22, 5, 2×3, 7, 23, 32, 2×5.
Terlihat bahwa 6 dan 10 merupakan KPK (atau hasil perkalian) dari bilangan yang lebih kecil yang menyebabkan 6 dan 10 dapat membagi KPK dari semua bilangan terkecil. Oleh karena itu 6 dan 10 masuk bilangan yang dimaksud.Dengan mengkombinasikan KPK dari 2 bilangan dari barisan tersebut, didapat KPK:
3 dan 22 atau 2 dan 2×3 = 12
2 dan 7 = 14
3 dan 5 = 15
3 dan 2×3 atau 2 dan 32= 18
2 dan 2×5 = 20
3 dan 7 = 21
2 dan 11 = 22Dengan demikian bilangan-bilangan x yang memenuhi adalah 1, 6, 10, 12, 14, 15, 18, 20, 21, 22.
Program akan terus berada pada perulangan sampai x mod i <> 0, artinya sampai menemukan bahwa i bukan faktor dari x. Jika i bukan faktor dari x, maka fungsi akan bernilai i.