Thursday, May 3, 2012

Membuat Fungsi IsPrima LISP

1. Membuat fungsi untuk menghitung banyaknya faktor dari inputan n dengan a = 1


(defun bykFktr (a n)
          (cond     ((= a n) 1)
                        ((= (modulo n a) 0) (+ 1 (bykFktr (a + 1)  n ) ) )
                        (t (bykFktr (a + 1) n) )
          )
)


2. Menentukan apakah n bilangan prima ==> fungsi banyak faktor harus menghasilkan angka 2


(defun IsPrima (n)
          (if (= (bykFktr 1 n) 2)  t  nil)
)

Menghitung Banyaknya Elemen Ganjil pada List

(defun BykElmtGnjl (L)     ====> List
          (cond     ((null L)  0)
                        ((oddp (firstelmt L))  (+ 1 (bykElmtGnjl  (cdr L))))     ==> Rekursif dengan penambahan 1 untuk setiap elemen ganjil
                        (t  (BykElmtGnjl (tail L)))                                            ==> Kondisi default
          )
)