-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPrimeNumber.lsp
65 lines (63 loc) · 1.09 KB
/
PrimeNumber.lsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
(defun prime (n)
(defvar div)
(defvar resto)
(cond ((= n 2)
(return-from prime (pprint "Il numero e' primo")))
((<= n 1)
(return-from prime 1))
)
(setq div 2)
(setq resto 0)
(loop
(setq resto (rem n div))
(cond ((= resto 0)
(return (pprint "Il numero non e' primo")))
)
(setq div (+ div 1))
(when (= div n) (return))
)
(cond ((= div n)
(pprint "Il numero e' primo"))
)
)
(defun list-prime (n)
(defvar div)
(defvar resto)
(defvar nv)
(cond ((= n 2)
(return-from list-prime 2))
((< n 2)
(return-from list-prime 1))
)
(setq div 2)
(setq resto 0)
(setq nv 3)
(print 2)
(loop
(loop
(setq resto (rem nv div))
(if (= resto 0)
(return)
(setq div (+ div 1))
)
(when (= div nv) (return (print nv)))
)
(setq nv (+ nv 1))
(setq div 2)
(when (> nv n) (return))
)
)
(defun fibonacci (n)
(defvar somma)
(defvar f1)
(defvar f2)
(setq somma 0)
(setq f1 1)
(setq f2 1)
(loop for cont 0 below n do
(setq somma (+ f1 f2))
(setq f2 f1)
(setq f1 somma)
(write somma)
)
)