43 lines
1 KiB
Text
43 lines
1 KiB
Text
100 DECLARE EXTERNAL SUB tri
|
|
110 !
|
|
120 PUBLIC NUMERIC U0(3,3), U1(3,3), U2(3,3), all, prim
|
|
130 DIM seed(3)
|
|
140 MAT READ U0, U1, U2
|
|
150 DATA 1, -2, 2, 2, -1, 2, 2, -2, 3
|
|
160 DATA 1, 2, 2, 2, 1, 2, 2, 2, 3
|
|
170 DATA -1, 2, 2, -2, 1, 2, -2, 2, 3
|
|
180 !
|
|
190 MAT READ seed
|
|
200 DATA 3, 4, 5
|
|
210 FOR power = 1 TO 7
|
|
220 LET all = 0
|
|
230 LET prim = 0
|
|
240 CALL tri(seed, 10^power , all , prim)
|
|
250 PRINT "Up to 10^";power,
|
|
260 PRINT USING "######### triples ######### primitives":all,prim
|
|
270 NEXT power
|
|
280 END
|
|
290 !
|
|
300 EXTERNAL SUB tri(i(), mp, all, prim)
|
|
310 DECLARE EXTERNAL FUNCTION SUM
|
|
320 DECLARE NUMERIC t(3)
|
|
330 !
|
|
340 IF SUM(i) > mp THEN EXIT SUB
|
|
350 LET prim = prim + 1
|
|
360 LET all = all + INT(mp / SUM(i))
|
|
370 !
|
|
380 MAT t = U0 * i
|
|
390 CALL tri(t, mp , all , prim)
|
|
400 MAT t = U1 * i
|
|
410 CALL tri(t, mp , all , prim)
|
|
420 MAT t = U2 * i
|
|
430 CALL tri(t, mp , all , prim)
|
|
440 END SUB
|
|
450 !
|
|
460 EXTERNAL FUNCTION SUM(a())
|
|
470 LET temp = 0
|
|
480 FOR i=LBOUND(a) TO UBOUND(a)
|
|
490 LET temp = temp + a(i)
|
|
500 NEXT i
|
|
510 LET SUM = temp
|
|
520 END FUNCTION
|