=>
=>
; <================== se ejecuta con: (PRIMOS x) ===============================>
=>
=>
=>
=>
; <================== en ambas funciones x debe ser la misma ===================>
(defun primos (n) ; #include <iostream.h>
; const int n = 1000;
(setf prim (make-array (+ 1 n))) ; void main(void)
; {
; int i,j, a[n+1];
(do ((i 2 (+ i 1))) ((> i n)) ; for (a[1] = 0, i = 2; i<=n; i++)
(setf (aref prim i) 1)) ; a[i] = 1;
(do ((i 2 (+ i 1))) ((> i (truncate n 2))) ; for (i=2; i<=n/2; i++)
(do ((j 2 (+ j 1))) ((> j (truncate n i))) ; for (j=2;j<=n/i;j++)
(setf (aref prim (* i j)) 0) ; a[i*j]=0;
)
)
(if (> (aref prim n) 0) (return-from primos t) (return-from primos nil))
)
(defun muestra_todos (n)
(do ((i 1 (+ i 1))) ((> i n)) ; for (i=1; i<=n; i++)
(if (> (aref prim i) 0) (print i)) ; if(a[i]) cout << i << ' ';
) ; cout << '\n';
; }
)