%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Sieve of eratosthenes to compute primes %% thom fruehwirth 920218-20, 980311 %% christian holzbaur 980207 for Sicstus CHR %% %% ported to hProlog by Tom Schrijvers :- module(primes,[]). :- use_module(library(chr)). :- constraints candidate/1. :- constraints prime/1. candidate(1) <=> true. candidate(N) <=> primes:prime(N), N1 is N - 1, primes:candidate(N1). absorb @ prime(Y) \ prime(X) <=> 0 is X mod Y | true. time(N):- cputime(X), candidate(N), cputime( Now), Time is Now-X, write(N-Time), nl. cputime( Ts) :- statistics( runtime, [Tm,_]), Ts is Tm/1000.