• Collatz

    From Jan van den Broek@21:1/5 to All on Sat Apr 8 12:13:37 2023
    I first heard of the Collatz-theorem in the late 70's, due to
    "The calculating book" by James T. Rogers. It's fun to play
    with it when being bored (like this: https://ctrl-c.club/~balglaas/collatz/collatz.html ).
    Recently I made a version which uses strings, so larger numbers
    can be used.

    === 8< ==================================================
    10 LET n=255
    20 INPUT d$
    30 GO SUB 150
    40 IF checked=0 THEN GO TO 140
    50 PRINT d$
    60 LET l=LEN (d$)
    70 REM while
    80 IF d$(l)="1" OR d$(l)="3" OR d$(l)="5" OR d$(l)="7" OR d$(l)="9" THEN GO TO 110
    90 GO SUB 240
    100 GO TO 120
    110 GO SUB 410
    120 PRINT d$
    130 IF d$<>"1" THEN GO TO 60
    140 STOP
    150 REM ===============================
    160 REM Check
    170 LET checked=1
    180 LET l=LEN (d$)
    190 FOR i=1 TO l
    200 LET c= CODE (d$(i))-48
    210 IF c<0 OR c>9 THEN LET checked=0
    220 NEXT i
    230 RETURN
    240 REM ===============================
    250 REM even
    260 LET w$=""
    270 LET carry=0
    280 FOR i=1 TO l
    290 LET c= CODE (d$(i))-48+carry
    300 LET carry=0
    310 LET m=c-10*INT (c/10)
    320 IF m=0 OR m=2 OR m=4 OR m=6 OR m=8 THEN GO TO 350
    330 LET carry=10
    340 LET c=c-1
    350 LET c=c/2
    360 IF i>1 OR c>0 THEN LET w$=w$+CHR$ (c+48)
    370 NEXT i
    380 LET d$=w$
    390 RETURN
    400 REM ===============================
    410 REM odd
    420 LET carry=0
    430 LET w$=""
    440 FOR i=l TO 1 STEP -1
    450 LET c=3*( CODE (d$(i))-48)+carry
    460 IF (i=l) THEN LET c=c+1
    470 LET m=c-10*INT (c/10)
    480 LET w$=CHR$ (m+48)+w$
    490 LET carry=INT (c/10)
    500 NEXT i
    510 IF carry=0 THEN GO TO 570
    520 REM while(carry)
    530 LET m=carry-10*INT (carry/10)
    540 LET w$=CHR$ (m+48)+w$
    550 LET carry=INT (carry/10)
    560 IF carry>0 THEN GO TO 530
    570 LET d$=w$
    580 RETURN
    === 8< ==================================================
    --
    Jan van den Broek balglaas@xs4all.nl

    Entertaining Quakers since 2005

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)