DIM A(200),B(200),C(200),D(200),Q(200),W(200),L(200),R(200),T(200) MAT A=ZER MAT C=ZER MAT Q=ZER PRINT PRINT "2つの自然数 ( 200未満 ) の" PRINT " 素因数分解  最小公倍数 最大公約数" PRINT " ( 200以上の数でも出来ることもあり 2100 と 4950 など )" PRINT INPUT PROMPT "自然数(その1)? ":n INPUT PROMPT "自然数(その2)? ":m PRINT LET nn=n LET mm=m PRINT nn;"="; LET f=2 LET X=0 LET S=0 DO UNTIL n=1 LET Z=0 DO WHILE MOD(n,f)=0 LET Z=Z+1 LET n=n/f LOOP IF Z=0 THEN GOTO 10 IF MOD(m,f)=0 THEN LET S=S+1 LET Q(f)=f LET W(f)=Z PRINT Q(f);"^";W(f); LET X=X+1 ELSE LET A(f)=f LET B(f)=Z PRINT A(f);"^";B(f); LET X=X+1 END IF IF n=1 THEN GOTO 20 PRINT " * "; 10 LET f=f+1 LOOP 20 PRINT PRINT mm;"="; LET g=2 LET Y=0 DO UNTIL m=1 LET Z=0 DO WHILE MOD(m,g)=0 LET Z=Z+1 LET m=m/g LOOP IF Z=0 THEN GOTO 30 IF g=Q(g) THEN LET L(g)=Z PRINT Q(g);"^";L(g); LET Y=Y+1 ELSE LET C(g)=g LET D(g)=Z PRINT C(g);"^";D(g); LET Y=Y+1 END IF IF m=1 THEN GOTO 40 PRINT " * "; 30 LET g=g+1 LOOP 40 PRINT FOR i=2 TO 97 IF Q(i)=0 THEN GOTO 50 IF W(i)>L(i) THEN LET T(i)=W(i) LET R(i)=L(i) ELSE LET R(i)=W(i) LET T(i)=L(i) END IF 50 NEXT i LET E=X+Y-S PRINT PRINT "最小公倍数 ="; LET U=0 LET TT=1 FOR j=2 TO 97 IF Q(j)=0 THEN GOTO 60 LET TT=TT*Q(j)^T(j) PRINT Q(j);"^";T(j); LET U=U+1 IF U=E THEN GOTO 90 PRINT " * "; 60 IF A(j)=0 THEN GOTO 70 LET TT=TT*A(j)^B(j) PRINT A(j);"^";B(j); LET U=U+1 IF U=E THEN GOTO 90 PRINT " * "; 70 IF C(j)=0 THEN GOTO 80 LET TT=TT*C(j)^D(j) PRINT C(j);"^";D(j); LET U=U+1 IF U=E THEN GOTO 90 PRINT " * "; 80 NEXT j 90 PRINT "=";TT PRINT "最大公約数 ="; LET U=0 LET RR=1 FOR j=2 TO 97 IF Q(j)=0 THEN GOTO 100 LET RR=RR*Q(j)^R(j) PRINT Q(j);"^";R(j); LET U=U+1 IF U=S THEN GOTO 110 PRINT " * "; 100 NEXT j 110 PRINT "=";RR PRINT PRINT nn;"=";TT;"÷";TT/nn PRINT mm;"=";TT;"÷";TT/mm PRINT PRINT nn;"=";RR;"×";nn/RR PRINT mm;"=";RR;"×";mm/RR PRINT END