OPTION BASE 0 PRINT PRINT " 1〜9の自然数のペアの和と差の積を、その結果の小さい順に並べます。" PRINT PRINT " 80以下の自然数で、2つの自然数のペアの和と差の積で表されないものを" PRINT "小さい順に並べます。" PRINT DIM A(40),B(80),X(40),Y(40) LET k=0 FOR i=1 TO 8 FOR j=i+1 TO 9 LET k=k+1 LET A(k)=(i+j)*(j-i) LET X(k)=i LET Y(k)=j NEXT j NEXT i PRINT PRINT " 1〜9の自然数でペアを作るには、" PRINT "全部で";k;"通りあります。" PRINT CALL sort(A,X,Y,k) FOR i=1 TO k PRINT " ";A(i);"===";X(i);",";Y(i) NEXT i PRINT LET A(0)=0 LET Z=0 FOR i=1 TO k IF A(i)<>A(i-1) THEN LET Z=Z+1 END IF NEXT i PRINT PRINT "1〜9の自然数のペアの和と差の積で表される自然数は、1 〜";A(K);"の数うち、";Z;"個になります。" PRINT CALL hoshugou(A,k,B,g) PRINT LET Q=0 FOR i=1 TO g PRINT USING "####":B(i); IF INT(i/10)>Q THEN LET Q=Q+1 PRINT END IF NEXT i PRINT PRINT PRINT "以上、1〜9の自然数のペアの和と差の積で表すことのできない自然数は、1 〜";A(K);"の数うち、";g;"個になります。" PRINT PRINT END EXTERNAL SUB sort(a(),b(),c(),m) FOR i=1 TO m-1 FOR j=i+1 TO m IF a(i)>a(j) THEN LET ta=a(j) LET tb=b(j) LET tc=c(j) LET a(j)=a(i) LET b(j)=b(i) LET c(j)=c(i) LET a(i)=ta LET b(i)=tb LET c(i)=tc END IF NEXT j NEXT i END SUB EXTERNAL SUB hoshugou(a(),m,b(),n) LET n=0 FOR i=1 TO a(m) FOR j=1 TO m IF i=a(j) THEN GOTO 10 NEXT j LET n=n+1 LET b(n)=i 10 NEXT i END SUB