FUNCTION PrimeQ(n) ! 素数判定 1 : 素数、 0 : 素数でない LET PrimeQ=0 IF n<2 OR n<>INT(n) THEN EXIT FUNCTION IF MOD(n,2)=0 THEN IF n=2 THEN LET PrimeQ=1 ELSE LET k=3 DO WHILE k*k<=n ! 3〜√n の奇数のみで検証する IF MOD(n,k)=0 THEN EXIT FUNCTION LET k=k+2 LOOP LET PrimeQ=1 END IF END FUNCTION PRINT INPUT PROMPT "実部の整数は?":m INPUT PROMPT "虚部の整数は?":n PRINT LET R=INT(SQR(m^2+n^2)) LET C=0 FOR i=-1*R TO R FOR j=-1*R TO R IF i^2+j^2=0 THEN GOTO 10 IF i^2+j^2>m^2+n^2 THEN GOTO 10 LET a=m*i+n*j LET b=n*i-m*j IF a/(i^2+j^2)=INT(a/(i^2+j^2)) AND b/(i^2+j^2)=INT(b/(i^2+j^2)) THEN LET C=C+1 PRINT "( ";i;", ";j;" )" IF PrimeQ(i^2+j^2)=1 THEN LET D=D+1 PRINT " → ガウス素数" END IF END IF 10 NEXT j NEXT i PRINT PRINT "以上";C;"個の約数があります。" PRINT END