Euler's sum of powers conjecture: Difference between revisions

Content added Content deleted
m (→‎{{header|ZX Spectrum Basic}}: moved misplaced line)
Line 3,945: Line 3,945:


{{Incorrect|ZX Spectrum Basic|ZX Spectrum Basic has one numerical type, floating point consisting of 5 bytes, of which one holds the exponent, leaving 4 for the
{{Incorrect|ZX Spectrum Basic|ZX Spectrum Basic has one numerical type, floating point consisting of 5 bytes, of which one holds the exponent, leaving 4 for the
mantissa. 249^4 is not too big to fit in those 4 bytes, but even 215^4 fills up all available bits. Adding up logarithmic "percentages" by subtracting that of the target sum from that of each summand and seeing if the inverses add up to the square root, will still lose precision and find false solutions, as a difference of 2 in one of the summands results in a difference in just the 11th place after the decimal point. Even QL SuperBASIC can only make such FP comparisons down to the 7th. But the attempted fix should only be very slow.}}
mantissa. 249^4 is not too big to fit in those 4 bytes, but even 215^4 fills up all available bits. Adding up logarithmic "percentages" by subtracting that of the target sum's square root from that of each summand and seeing if the inverses add up to the square root, will still lose precision and find false solutions, as a difference of 2 in one of the summands results in a difference in just the 11th place after the decimal point. Even QL SuperBASIC only makes such FP comparisons down to the 7th. But the attempted fix should only be very slow.}}
Very, very, very slow. Even with an emulator at full speed.
Very, very, very slow. Even with an emulator at full speed.


<lang zxbasic>
<lang zxbasic>
2 DIM p(249): DIM q(249)
5 DIM p(249): DIM q(249)
4 FOR i=1 TO 249: q(i)=5*LN i: p(i)=q(i)/2: NEXT i
15 FOR i=1 TO 249: q(i)=5*LN i: p(i)=q(i)/2: NEXT i
20 FOR w=7 TO 245 STEP 7: FOR x=5 TO 245 STEP 5: FOR y=3 TO 246 STEP 3: FOR z=2 TO 248 STEP 2
20 FOR w=7 TO 245 STEP 7: FOR x=5 TO 245 STEP 5: FOR y=3 TO 246 STEP 3: FOR z=2 TO 248 STEP 2
25 FOR m=8 TO 249
25 FOR m=8 TO 249
30 LET sum=EXP(q(w)-p(m))+ EXP(q(x)-p(m)) + EXP(q(y)-p(m)) + EXP(q(z)-p(m))
30 LET sum=EXP(q(w)-p(m))+ EXP(q(x)-p(m)) + EXP(q(y)-p(m)) + EXP(q(z)-p(m))
35 LET lnsum=LN sum
35 LET lnsum=LN sum
50 IF lnsum=p(m) THEN PRINT w;"^5+";x;"^5+";y;"^5+";z;"^5=";m;"^5": STOP
50 IF lnsum=p(m) THEN PRINT w;"^5+";x;"^5+";y;"^5+";z;"^5=";m;"^5": STOP
55 IF lnsum>p(m) THEN NEXT m
55 IF lnsum>p(m) THEN NEXT m
60 NEXT z: NEXT y: NEXT x: NEXT w
60 NEXT z: NEXT y: NEXT x: NEXT w
</lang>
</lang>