10 CLS
20 PRINT "2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97"
30 END
А вот как выглядит моя "десятиминутная" программа, показывающая превосходство newLISP над другими высокоуровневыми языками программирования:
(define (prime? x) (= (first (factor x)) x))
(println (filter prime? (sequence 2 100)))
Забавно, что открыв мануал на странице с описанием функции factor, я наткнулся на готовое решение, написанное, вероятно, самим Лутцем:
(define (primes n , p)
(dotimes (e n)
(if (= (length (factor e)) 1)
(push e p -1))) p)
(print (primes 100))
Решение Лутца, что характерно, работает на 20% быстрее быстрее.
> (time (filter prime? (sequence 2 1000000)))
2203,125
> (time (primes 1000000))
1796,875
Комментариев нет:
Отправить комментарий