Pythagorean triples: Difference between revisions
Content added Content deleted
(added FreeBASIC) |
(added ZX Spectrum Basic) |
||
Line 3,555: | Line 3,555: | ||
</pre> |
</pre> |
||
Max stack size is arbitrary but not adjustable. |
Max stack size is arbitrary but not adjustable. |
||
=={{header|ZX Spectrum Basic}}== |
|||
ZX Spectrum: 8 bit microprocessor 3.5 Mhz doing all the work. |
|||
In an effort to get some decent speed the program is made to be as fast as it can. |
|||
It takes about 90 seconds for limit = 10 000 and 17 minutes for limit=100 000 and 3.5 hours for limit = 1000 000. |
|||
To set the limits. |
|||
Set in line nr: 1 L to the starting limit. |
|||
Set in line nr: 11 IF L<=(last limit to calculate) |
|||
Ex. start as limit 100 and end on limit 1000. |
|||
Set in line nr: 1 LET L=100. |
|||
Set in line nr: 11 IF L<=1000 THEN GO TO 2 |
|||
<lang zxbasic> 1 LET Y=0: LET X=0: LET Z=0: LET V=0: LET U=0: LET L=10: LET T=0: LET P=0: LET N=4: LET M=0: PRINT "limit trip. prim." |
|||
2 FOR U=2 TO INT (SQR (L/2)): LET Y=U-INT (U/2)*2: LET N=N+4: LET M=U*U*2: IF Y=0 THEN LET M=M-U-U |
|||
3 FOR V=1+Y TO U-1 STEP 2: LET M=M+N: LET X=U: LET Y=V |
|||
4 LET Z=Y: LET Y=X-INT (X/Y)*Y: LET X=Z: IF Y<>0 THEN GO TO 4 |
|||
5 IF X>1 THEN GO TO 8 |
|||
6 IF M>L THEN GO TO 9 |
|||
7 LET P=P+1: LET T=T+INT (L/M) |
|||
8 NEXT V |
|||
9 NEXT U |
|||
10 PRINT L;TAB 8;T;TAB 16;P |
|||
11 LET N=4: LET T=0: LET P=0: LET L=L*10: IF L<=100000 THEN GO TO 2</lang> |
|||
<pre>limit trip. prim. |
|||
10 0 0 |
|||
100 17 7 |
|||
1000 325 70 |
|||
10000 4858 703 |
|||
100000 64741 7026 |
|||
1000000 808950 70229</pre> |
|||
[[Category:Geometry]] |
[[Category:Geometry]] |