Möbius function: Difference between revisions

Added various BASIC dialects (Gambas, MSX Basic, PureBasic and XBasic)
(→‎{{header|RPL}}: HP-49/50 version)
(Added various BASIC dialects (Gambas, MSX Basic, PureBasic and XBasic))
 
Line 378:
end</syntaxhighlight>
{{out}}
<pre>Igual que la entrada de FreeBASIC.</pre>
<pre>
Igual que la entrada de FreeBASIC.
</pre>
 
==={{header|Chipmunk Basic}}===
Line 508 ⟶ 506:
0 1 -1 0 1 1 1 0 -1 0 1 0 1 1 1 0 -1 0 0 0
</pre>
 
==={{header|Gambas}}===
{{trans|FreeBASIC}}
{{works with|Windows}}
<syntaxhighlight lang="vbnet">Public Sub Main()
Dim outstr As String = " . "
 
For i As Integer = 1 To 200
If mobius(i) >= 0 Then outstr &= " "
outstr &= Str(mobius(i)) & " "
If i Mod 10 = 9 Then
Print outstr
outstr = ""
End If
Next
End
 
Function mobius(n As Integer) As Integer
 
If n = 1 Then Return 1
For d As Integer = 2 To Int(Sqr(n))
If n Mod d = 0 Then
If n Mod (d * d) = 0 Then Return 0
Return -mobius(n / d)
End If
Next
Return -1
 
End Function</syntaxhighlight>
{{out}}
<pre>Same as FreeBASIC entry.</pre>
 
==={{header|GW-BASIC}}===
Line 575 ⟶ 606:
230 RETURN
</syntaxhighlight>
 
==={{header|MSX Basic}}===
{{works with|MSX BASIC|any}}
The [[#GW-BASIC|GW-BASIC]] solution works without any changes.
 
==={{header|PureBasic}}===
{{trans|FreeBASIC}}
<syntaxhighlight lang="purebasic">Procedure.i mobius(n)
If n = 1:
ProcedureReturn 1
EndIf
For d = 2 To Int(Sqr(n))
If Mod(n, d) = 0:
If Mod(n, d * d) = 0:
ProcedureReturn 0
EndIf
ProcedureReturn -mobius(n / d)
EndIf
Next d
ProcedureReturn -1
EndProcedure
 
OpenConsole()
outstr$ = " . "
For i = 1 To 200
If mobius(i) >= 0:
outstr$ = outstr$ + " "
EndIf
outstr$ = outstr$ + Str(mobius(i)) + " "
If Mod(i, 10) = 9:
PrintN(outstr$)
outstr$ = ""
EndIf
Next i
 
PrintN(#CRLF$ + "Press ENTER to exit"): Input()
CloseConsole()</syntaxhighlight>
{{out}}
<pre>Same as FreeBASIC entry.</pre>
 
==={{header|Tiny BASIC}}===
Line 598 ⟶ 668:
101 PRINT "1"
END</syntaxhighlight>
 
==={{header|XBasic}}===
{{works with|Windows XBasic}}
{{trans|FreeBASIC}}
<syntaxhighlight lang="qbasic">PROGRAM "Möbius function"
VERSION "0.0000"
IMPORT "xma"
 
 
DECLARE FUNCTION Entry ()
DECLARE FUNCTION mobius (n)
 
FUNCTION Entry ()
outstr$ = " . "
FOR i = 1 TO 200
IF mobius(i) >= 0 THEN outstr$ = outstr$
outstr$ = outstr$ + STR$(mobius(i)) + " "
IF i MOD 10 = 9 THEN
PRINT outstr$
outstr$ = ""
END IF
NEXT i
END FUNCTION
 
FUNCTION mobius (n)
IF n = 1 THEN RETURN 1
FOR d = 2 TO INT(SQRT(n))
IF n MOD d = 0 THEN
IF n MOD (d*d) = 0 THEN RETURN 0
RETURN -mobius(n/d)
END IF
NEXT d
RETURN -1
END FUNCTION
END PROGRAM</syntaxhighlight>
{{out}}
<pre>Same as FreeBASIC entry.</pre>
 
==={{header|Yabasic}}===
2,130

edits