$lines $constant true = 0FFFFH $constant false = 0 rem - return true if n is square-free function SquareFree(n = integer) = integer var i, count, result = integer i = 2 result = true rem - decompose n into its prime factors while (i*i) <= n and result <> false do begin count = 0 while n - (n / i) * i = 0 do begin count = count + 1 n = n / i end rem - not square-free if a divisor was repeated if count > 1 then result = false i = i + 1 end end = result rem - demonstrate the function var i, found = integer print "Showing square-free numbers between 1 and 145" for i = 1 to 145 if SquareFree(i) then print using "### ";i; next i print found = 0 for i = 1 to 100 if SquareFree(i) then found = found + 1 next i print "Square-free numbers between 1 and 100 ="; found found = 0 for i = 1 to 1000 if SquareFree(i) then found = found + 1 next i print "Square-free numbers between 1 and 1,000 ="; found found = 0 for i = 1 to 10000 if SquareFree(i) then found = found + 1 next i print "Square-free numbers between 1 and 10,000 ="; found end