Mertens function: Difference between revisions

Mertens function in various BASIC dialents (BASIC256, Run BASIC, True BASIC, XBasic and Yabasic)
m (syntax highlighting fixup automation)
(Mertens function in various BASIC dialents (BASIC256, Run BASIC, True BASIC, XBasic and Yabasic))
Line 798:
M(N) crosses zero 59 times.</pre>
 
==={{header|BashBASIC256}}===
<syntaxhighlight lang="freebasic">arraybase 1
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 rjust(string(M[n]),3);
if n mod 10 = 9 then print
next n
numCruza = 0
numEsCero = 0
for n = 1 to 1000
if M[n] = 0 then
numEsCero += 1
if M[n-1] <> 0 then numCruza += 1
end if
next n
print
print "M(n) is zero "; numEsCero; " times."
print "M(n) crosses zero "; numCruza; " times."</syntaxhighlight>
{{out}}
<pre>Same as BASIC entry.</pre>
 
==={{header|Run BASIC}}===
{{works with|Just BASIC}}
{{works with|Liberty BASIC}}
<syntaxhighlight lang="freebasic">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 using("###", 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
numEsCero = numEsCero +1
if M(n-1) <> 0 then numCruza = numCruza +1
end if
next n
print
print "M(n) is zero "; numEsCero; " times."
print "M(n) crosses zero "; numCruza; " times."</syntaxhighlight>
{{out}}
<pre>Same as BASIC entry.</pre>
 
==={{header|True BASIC}}===
<syntaxhighlight lang="qbasic">DIM m(1000)
LET m(1) = 1
FOR n = 2 TO 1000
LET m(n) = 1
FOR k = 2 TO n
LET m(n) = m(n)-m(INT(n/k))
NEXT k
NEXT n
PRINT "First 99 Mertens numbers:"
PRINT " ";
FOR n = 1 TO 99
PRINT " ";
PRINT USING "##": m(n);
!IF REMAINDER(ROUND(n),10) = 9 THEN PRINT
IF MOD(n,10) = 9 THEN PRINT
NEXT n
LET numcruza = 0
LET numeszero = 0
FOR n = 1 TO 1000
IF m(n) = 0 THEN
LET numeszero = numeszero+1
IF m(n-1) <> 0 THEN LET numcruza = numcruza+1
END IF
NEXT n
PRINT
PRINT "M(n) is zero"; numeszero; "times."
PRINT "M(n) crosses zero"; numcruza; "times."
END</syntaxhighlight>
{{out}}
<pre>Same as FreeBASIC entry.</pre>
 
==={{header|XBasic}}===
{{works with|Windows XBasic}}
<syntaxhighlight lang="xbasic">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</syntaxhighlight>
{{out}}
<pre>Same as FreeBASIC entry.</pre>
 
==={{header|Yabasic}}===
<syntaxhighlight lang="freebasic">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 M(n) using("###");
if mod(n, 10) = 9 print
next n
numCruza = 0
numEsCero = 0
for n = 1 to 1000
if M(n) = 0 then
numEsCero = numEsCero + 1
if M(n-1) <> 0 numCruza = numCruza + 1
end if
next n
print
print "M(n) is zero ", numEsCero, " times."
print "M(n) crosses zero ", numCruza, " times."</syntaxhighlight>
{{out}}
<pre>Same as FreeBASIC entry.</pre>=={{header|Bash}}==
<syntaxhighlight lang="bash">#!/bin/bash
MAX=1000
2,143

edits