RosettaCodeData/Task/Primality-by-trial-division/BCPL/primality-by-trial-division.bcpl
2023-07-01 13:44:08 -04:00

28 lines
462 B
Text

get "libhdr"
let sqrt(s) =
s <= 1 -> 1,
valof
$( let x0 = s >> 1
let x1 = (x0 + s/x0) >> 1
while x1 < x0
$( x0 := x1
x1 := (x0 + s/x0) >> 1
$)
resultis x0
$)
let isprime(n) =
n < 2 -> false,
(n & 1) = 0 -> n = 2,
valof
$( for i = 3 to sqrt(n) by 2
if n rem i = 0 resultis false
resultis true
$)
let start() be
$( for i=1 to 100
if isprime(i) then writef("%N ",i)
wrch('*N')
$)