RosettaCodeData/Task/Mertens-function/XBasic/mertens-function.basic

35 lines
569 B
Plaintext

PROGRAM "Mertens"
VERSION "0.0000"
DECLARE FUNCTION Entry ()
FUNCTION Entry ()
DIM M[1000]
M[1] = 1
FOR n = 2 TO 1000
M[n] = 1
FOR k = 2 TO n
M[n] = M[n] - M[INT(n/k)]
NEXT k
NEXT n
PRINT "First 99 Mertens numbers:"
PRINT " ";
FOR n = 1 TO 99
PRINT FORMAT$("###", M[n]);
IF n MOD 10 = 9 THEN PRINT
NEXT n
numCruza = 0
numEsCero = 0
FOR n = 1 TO 1000
IF M[n] = 0 THEN
INC numEsCero
IF M[n-1] <> 0 THEN INC numCruza
END IF
NEXT n
PRINT
PRINT "M(n) is zero"; numEsCero; " times."
PRINT "M(n) crosses zero"; numCruza; " times."
END FUNCTION
END PROGRAM