begin comment CALCULATION OF THE PRIME NUMBERS BETWEEN 2 AND 200 ; integer NN; NN ≔ 200; begin comment FIRST ALGORITHM (CHECK DIVISION IN A LOOP) ; boolean procedure ISPRIME (N); value N; integer N; begin boolean procedure EVEN (N); value N; integer N; EVEN ≔ ENTIER (N / 2) × 2 = N; integer I; ISPRIME ≔ false; if EVEN (N) ∧ N ≠ 2 then goto RET; for I ≔ 3 step 2 until N ÷ 2 do if ENTIER (N / I) × I = N then goto RET; ISPRIME ≔ true; RET: end; integer I; VPRINT (“FIRST:”); for I ≔ 2 step 1 until NN do if ISPRIME (I) then OUTINTEGER (1, I); VPRINT (“\NDONE.”) end; begin comment SECOND ALGORITHM (SIEVE) ; boolean array ARR [2 : NN]; integer I, J; VPRINT (“SECOND:”); for I ≔ 2 step 1 until NN do ARR [I] ≔ true; for I ≔ 2 step 1 until NN ÷ 2 do for J ≔ 2 × I step I until NN do ARR [J] ≔ false; for I ≔ 2 step 1 until NN do if ARR [I] then OUTINTEGER (1, I); VPRINT (“\NDONE.”) end end