Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
60
Task/Magnanimous-numbers/PicoLisp/magnanimous-numbers.l
Normal file
60
Task/Magnanimous-numbers/PicoLisp/magnanimous-numbers.l
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
(de **Mod (X Y N)
|
||||
(let M 1
|
||||
(loop
|
||||
(when (bit? 1 Y)
|
||||
(setq M (% (* M X) N)) )
|
||||
(T (=0 (setq Y (>> 1 Y)))
|
||||
M )
|
||||
(setq X (% (* X X) N)) ) ) )
|
||||
(de isprime (N)
|
||||
(cache '(NIL) N
|
||||
(if (== N 2)
|
||||
T
|
||||
(and
|
||||
(> N 1)
|
||||
(bit? 1 N)
|
||||
(let (Q (dec N) N1 (dec N) K 0 X)
|
||||
(until (bit? 1 Q)
|
||||
(setq
|
||||
Q (>> 1 Q)
|
||||
K (inc K) ) )
|
||||
(catch 'composite
|
||||
(do 16
|
||||
(loop
|
||||
(setq X
|
||||
(**Mod
|
||||
(rand 2 (min (dec N) 1000000000000))
|
||||
Q
|
||||
N ) )
|
||||
(T (or (=1 X) (= X N1)))
|
||||
(T
|
||||
(do K
|
||||
(setq X (**Mod X 2 N))
|
||||
(when (=1 X) (throw 'composite))
|
||||
(T (= X N1) T) ) )
|
||||
(throw 'composite) ) )
|
||||
(throw 'composite T) ) ) ) ) ) )
|
||||
(de numbers (N)
|
||||
(let (P 10 Q N)
|
||||
(make
|
||||
(until (> 10 Q)
|
||||
(link
|
||||
(+
|
||||
(setq Q (/ N P))
|
||||
(% N P) ) )
|
||||
(setq P (* P 10)) ) ) ) )
|
||||
(de ismagna (N)
|
||||
(or
|
||||
(> 10 N)
|
||||
(fully isprime (numbers N)) ) )
|
||||
(let (C 0 N 0 Lst)
|
||||
(setq Lst
|
||||
(make
|
||||
(until (== C 401)
|
||||
(when (ismagna N)
|
||||
(link N)
|
||||
(inc 'C) )
|
||||
(inc 'N) ) ) )
|
||||
(println (head 45 Lst))
|
||||
(println (head 10 (nth Lst 241)))
|
||||
(println (head 10 (nth Lst 391))) )
|
||||
Loading…
Add table
Add a link
Reference in a new issue