Euler's sum of powers conjecture: Difference between revisions
Content added Content deleted
m (→{{header|ZX Spectrum Basic}}: moved misplaced line) |
m (→{{header|ZX Spectrum Basic}}: cosmetic changes) |
||
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 |
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> |
||
5 DIM p(249): DIM q(249) |
|||
15 FOR i=1 TO 249: q(i)=5*LN i: p(i)=q(i)/2: NEXT i |
|||
20 |
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 |
60 NEXT z: NEXT y: NEXT x: NEXT w |
||
</lang> |
</lang> |