RosettaCodeData/Task/Tau-function/S-BASIC/tau-function.basic

29 lines
633 B
Plaintext

rem - return the value of n mod m
function mod(n, m = integer) = integer
end = n - m * (n / m)
rem - return the tau value (number of divisors) of n
function tau(n = integer) = integer
var i, t, limit = integer
if n < 3 then
t = n
else
begin
t = 2
limit = (n + 1) / 2
for i = 2 to limit
if mod(n, i) = 0 then t = t + 1
next i
end
end = t
rem - test by printing the tau value of the first 100 numbers
var i = integer
print "Number of divisors for first 100 numbers:"
for i = 1 to 100
print using "## "; tau(i);
if mod(i, 10) = 0 then print
next i
end