Code:
DECLARE FUNCTION get.a.key$ ()DECLARE SUB pause ()DECLARE FUNCTION w2! (a!)DECLARE FUNCTION wonderous! (a!)CLSPRINT "Wonderous numbers - what ones are?"PRINTqq = 1WHILE 0 = 0 FOR a = 1 TO 40 r = INT(RND * 1000000) PRINT "W("; r; ") = "; w2(r) NEXT pauseWENDFOR t = 1 TO 10000 FOR a = qq TO qq + 39 PRINT "W("; a; ") = "; w2(a) NEXT pause qq = qq + 40NEXTFUNCTION get.a.key$temp$ = INKEY$WHILE temp$ = "" temp$ = INKEY$WENDget.a.key$ = temp$END FUNCTIONSUB pausePRINTPRINT "<press any key>"aa$ = get.a.key$END SUBFUNCTION w2 (a)'inputs a, returns 1 if wonderous, not recursivea1 = a 'temp var to useWHILE a1 > 1 IF a1 = 1 THEN w2 = 1: EXIT FUNCTION IF a1 < 1 OR INT(a1) <> a1 THEN PRINT "ERROR "; a: STOP IF a1 / 2 = INT(a1 / 2) THEN a1 = a1 / 2 ELSE a1 = 3 * a1 + 1 END IF 'PRINT a1;WENDw2 = a1END FUNCTIONFUNCTION wonderous (a)IF a = 1 THEN wonderous = 1: EXIT FUNCTIONIF a < 1 THEN PRINT "ERROR "; a: STOPIF a / 2 = INT(a / 2) THEN 'PRINT "even": STOP 'PRINT a / 2 wonderous = wonderous(a / 2)ELSE 'PRINT "odd": STOP wonderous = wonderous(3 * a + 1)END IFEND FUNCTION
Statistics: Posted by Jack002 — Tue Jul 23, 2013 8:27 pm