FOR a=1 TO 300 FOR b=a+1 TO 300 LET c=SQR(a*a+b*b) IF c=INT(c) THEN PRINT a;"+";b;"⇒";c END IF NEXT b NEXT a END ################################################################################ DIM Q(20) PRINT PRINT " 次第に大きくなっていく項数10個以上の300以下の自然数からなる数列で" PRINT "隣同士がピタゴラス数になっている数列には、次のようなものがあります。" FOR i=1 TO 300 LET n=0 LET A=i DO LET B=A+1 LET T=A^2+B^2 DO LET P=INT(SQR(T)) IF P*P=T THEN EXIT DO LET T=T+2*B+1 !次のピタゴラス数の候補 A^2+(B+1)^2=(A^2+B^2)+2B+1 IF B>300 THEN GOTO 10 LET B=B+1 LOOP LET n=n+1 LET Q(n)=B LET A=B LOOP 10 IF n<9 THEN GOTO 20 PRINT PRINT i;" "; FOR j= 1 TO n PRINT Q(j);" "; NEXT j PRINT "  項数:";n+1 PRINT 20 NEXT i PRINT END ################################################################################ DIM Q(20) LET n=0 INPUT PROMPT "初項は? ":A PRINT LET Z=A DO LET B=A+1 LET T=A^2+B^2 DO LET P=INT(SQR(T)) IF P*P=T THEN EXIT DO LET T=T+2*B+1 !次のピタゴラス数の候補 A^2+(B+1)^2=(A^2+B^2)+2B+1 IF B>300 THEN GOTO 10 LET B=B+1 LOOP LET n=n+1 LET Q(n)=B LET K=K+1 !結果を表示する PRINT STR$(K);": "; A;"+";B;" ⇒ ";P;" → ";T LET A=B LOOP 10 PRINT PRINT Z;" "; FOR i= 1 TO n PRINT Q(i);" "; NEXT i PRINT PRINT PRINT "項数は";n+1;"個です。" PRINT END