    5MODE 12
   10PRINT"Basic2 Program ""a36gon.POWER"", BY DS MCDONALD, 18.3.1988, 29.09.96, 1.10.96"'" CALCULATE SOLUTIONS OF X^A + Y^B = Z^C, (POWER + POWER = POWER)"'
   11PRINT"   -> From: Bill Center <mathnut@atl.mindspring.com>"
   12PRINT"-> Date: Wed, 25 Sep 1996 21:37:54 -0400"
   13PRINT"-> Message-ID: <3249DE72.2779@atl.mindspring.com>"
   14PRINT"-> "
   15PRINT"-> X^a + Y^b = Z^c has no solutions for coprime X,Y,Z"
   16PRINT"-> when each exponent a,b,c, > 2"
   17PRINT""
   18PRINT"I have some more cases from my recovered ""POWER"" program"
   19PRINT"up to 5E8.  (21E8,  BBC Basic 2.  1988.)"
   20PRINT"None constitutes a counter example yet."
   21PRINT"What is the difficulty rating of his problem?"
   22PRINT""
   23PRINT"111^3 + 37^4 = 148^3,  factor 37"
   24PRINT"2* 162^3 = 54^4,  factor 54."
   25PRINT"38^3 + 19^4 = 57^3, factor 19."
   26PRINT"49^3 + 7^7 = 98^3, factor 7."
   27PRINT"13^5 + 91^3 = 104^3, factor 13"
   28PRINT"144^3 + 288^3 = 72^4, factor 72"
   29PRINT""
   30PRINT"51^4 + 34^5 = ?  , factor 17."
   31PRINT"469^3 + 603^3 = 134^4 , factor 67."
   32PRINT""
   33PRINT"    (sgned)     Don   S    McDonald.   Wellington, New Zealand."
   34PRINT"    don.mcdonald@welcom.gen.nz       (Acorn Archimedes A4000.)"
   35PRINT ' "Another Poster. genFLT1, condition.. 1/a + 1/b + 1/c <1."'
   15INPUT"ENTER MAX VALUE OF RIGHT HAND SIDE      (100-2E9)",MAX%
   16   INPUT'"ENTER MINIMUM INDEX 2-10",MIN%
   20NOW=TIME
   30REM DIMA%(1600,2),PNR%(1600)
   31DIM A%(2000,2),PNR%(2000)
   32PROCGENERATE
   34PROCUBBLE
   35PROCORDER
   36PROCSOLUTIONS
   38END
   39DEF PROCGENERATE
   40Z%=1:A%(Z%,0)=1:A%(Z%,1)=1:A%(Z%,2)=1:PNR%(1)=1
   50FOR I%=2TOMAX%^(1/MIN%)
   60FOR J%=MIN%TOLN(MAX%)/LN(I%)
   70X%=I%^J%
   80PRINT"   ";I%;"^"J%"="X%;:IF COUNT>25THEN PRINT
   90Z%=Z%+1
  100A%(Z%,0)=X%
  110A%(Z%,1)=I%
  120A%(Z%,2)=J%
  130PNR%(Z%)=Z%
  140NEXT J%
  150NEXT I%
  159PRINT'"NO. OF POWERS =";Z%"  TIME (SECS)="(TIME-NOW)/100''
  162ENDPROC
  164DEF PROCUBBLE
  166PRINT"SORT INTO INCREASING ORDER - TIME APPROX "INT(.12*(Z%/100)^2)" MINUTES  ???"':VDU7
  170FOR SCAN=1TOZ%-1
  180SORTED=TRUE
  190FOR P%=1TOZ%-SCAN
  200IF A%(PNR%(P%),0)<=A%(PNR%(P%+1),0)THEN 250
  210TEMP=PNR%(P%)
  220PNR%(P%)=PNR%(P%+1)
  230PNR%(P%+1)=TEMP
  240SORTED=FALSE
  250NEXT P%
  255PRINT A%(PNR%(P%),0)"  ";
  256    IF POS > 66 THEN PRINT
  260IF SORTED THEN 280
  262IF A%(PNR%(P%),0)>A%(PNR%(P%-1),0)THEN 270
  264SCAN=SCAN+1:P%=P%-1:GOTO 262
  270NEXT SCAN
  280REM EXIT POINT
  281PRINT'
  282ENDPROC
  285DEF PROCORDER
  290FOR ROW%=1TOZ%
  300PRINT A%(PNR%(ROW%),0) " ";
  301  IF POS > 66 THEN PRINT
  302NEXT ROW%:VDU7
  304ENDPROC
  306DEF PROCSOLUTIONS
  308PRINT''"X^A + Y^B = Z^C,   TIME (MINS) ="(TIME-NOW)/6000
  309  i = 0
  320FOR I%=1TOZ%-2:AI%=A%(PNR%(I%),0)
  325K%=I%
  330FOR J%=I%TOZ%-2
  340X%=AI%+A%(PNR%(J%),0)
  360REPEAT K%=K%+1
  370UNTIL(A%(PNR%(K%),0)>=X%)OR(K%=Z%-1)
  380IF A%(PNR%(K%),0)=X% THEN
  381  REM THEN GOTO 390 ELSE GOTO 397
  382  i += 1
  383  IF i MOD 24 = 6 THEN PRINT "x^a + y^b = z^c,         1/a + 1/b + 1/c < 1?.  TIME (MINS) ="(TIME-NOW)/6000 ' "-------"
  390 x% = A%(PNR%(I%),1) : a% = A%(PNR%(I%),2)
  391  y% =A%(PNR%(J%),1)  : b% = A%(PNR%(J%),2)
  392  z% =A%(PNR%(K%),1) : c% =A%(PNR%(K%),2)
  393  PRINT ; x%"^"a% " + " y%"^"b% " = "z%"^"c%;
  394  :IF A%(PNR%(K%+1),0)=X%THEN PRINT"*";
  395REM IF COUNT>20THEN PRINT
  396  PRINT "  factor = "; FNHCF(x% ,y% );
  397abc = a%*b%*c%
  398d= abc - (b%*c% + a%*c% + a%*b%)
  399PRINT TAB(40) "abc/d ="; abc ", "d;
  400IF d > 0 THEN PRINT " >0"  ELSE PRINT 
  397ELSE K%=K%-1
  398ENDIF
  400NEXT J%
  410NEXT I%:VDU7:PRINT'"TIME (HRS) =";(TIME-NOW)/360000'"* RIGHT HAND SIDE IS NOT UNIQUE "'"(INDEX C IS A COMPOSITE NUMBER.)"'"MAX%="MAX%"  MIN%="MIN%
  420ENDPROC
  421
  422DEF FNHCF(x,y)
  423REPEAT
  424     h = x MOD y
  425     x = y : y = h
  426     UNTIL y = 0 OR y = 1
  427
  428IF y = 1 THEN PRINT CHR$(7)" coprime SPC ";GET$  ; : =1
  429= x
  430REM -----------