Name:
Anonymous
2010-08-22 21:39
for(i=2;i<max;i++) {
for(j=2;j<i;j++) {
if((i%j)==0) { tmp=1;}
}
if(tmp==0) { primes++; }
tmp=0;
}
Name:
Anonymous
2010-08-25 13:13
#lang r5rs
(define-syntax scons
(syntax-rules ()
((_ a b) (cons a (delay b)))))
(define scar car)
(define scdr (lambda (stream) (force (cdr stream))))
(define enumerate-integers
(lambda(from)
(scons from (enumerate-integers (+ 1 from)))))
(define stream-filter
(lambda(p? stream)
(if (p? (scar stream))
(scons (scar stream) (stream-filter p? (scdr stream)))
(stream-filter p? (scdr stream)))))
(define stream-map
(lambda(p stream)
(scons (p (scar stream)) (stream-map p (scdr stream)))))
(define multiples-of
(lambda(n)
(stream-map (lambda(x) (* x n)) (enumerate-integers 1))))
(define wheel-filter
(lambda(wheels stream)
(let ((v (scar stream)))
(if (memq v (map scar wheels))
(wheel-filter (rotate-wheels v wheels) (scdr stream))
(scons (scar stream) (wheel-filter (cons (scdr (multiples-of v)) wheels) (scdr stream)))))))
(define rotate-wheels
(lambda(value wheels)
(cond ((null? wheels) '())
((eq? value (scar (car wheels))) (cons (scdr (car wheels)) (rotate-wheels value (cdr wheels))))
(else (cons (car wheels) (rotate-wheels value (cdr wheels)))))))
(define primes
(wheel-filter (list (scdr (multiples-of 2))) (enumerate-integers 2)))