PRINT PRINT "※ 1000000 以下の メルセンヌ素数 は、 次の8個です。" PRINT FOR k=1 TO 20 LET M=2^k-1 FOR n=3 TO CEIL(M/3) STEP 2 IF MOD(M,n)=0 THEN GOTO 10 NEXT n PRINT "2 ^";k;" − 1 = ";M 10 NEXT k PRINT PRINT "#####################################################################" PRINT PRINT "(完全数) 2^1 * ( 2^2 − 1 ) = 2^1 * 3 = ";6 PRINT "(完全数) 2^2 * ( 2^3 − 1 ) = 2^2 * 7 = ";2^2*7 PRINT "(完全数) 2^4 * ( 2^5 − 1 ) = 2^4 * 31 = ";2^4*31 PRINT "(完全数) 2^6 * ( 2^7 − 1 ) = 2^6 * 127 = ";2^6*127 PRINT "(完全数) 2^12 * ( 2^13 − 1 ) = 2^12 * 8191 = ";2^12*8191 PRINT "(完全数) 2^16 * ( 2^17 − 1 ) = 2^16 * 131071 = ";2^16*131071 PRINT "(完全数) 2^18 * ( 2^19 − 1 ) = 2^18 * 524287 = ";2^18*524287 PRINT PRINT "#####################################################################" PRINT PRINT "このプログラムは終了しました。" END ################################################################################ OPTION ARITHMETIC DECIMAL_HIGH PRINT PRINT "完全数( 自分以外の約数の和が自分に等しい自然数 )" PRINT LET a=2 LET b=3 10 PRINT a*b IF a*b>100000000000 THEN 40 20 LET a=a*2 LET b=a*2-1 LET n=1 30 LET n=n+2 IF b/n=INT(b/n) THEN 20 IF n>SQR(b) THEN 10 GO TO 30 40 PRINT PRINT " 完全数 2305843008139952128 よりも小さな完全数は、 以上の7個です。" PRINT PRINT " 実際は、このプログラムでは 1000億までしか探していません。" PRINT END