32 lines
601 B
Plaintext
32 lines
601 B
Plaintext
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
|