I've come up with a very efficient way of finding if a number is prime, using TI-BASIC for use with TI-83/84/+/SE calculators. I am trying to optimize it however possible.
:Input "NUMBER: ",A :If A<2 or fPart(A :Then :Disp "INVALID INPUT" :Stop :End :0→B :2→I :While I<A and not(B :If 0=fPart(A/I :1→B :I+2→I :If I=4 :3→I :End :If B :Disp "NOT" :Disp "PRIME"
A few notes:
- Lines 2-6 are for validating input, and don't affect the effectiveness of the program.
- The closing
"s on line 4 and the last two lines are not necessary, but I added them so the syntax would highlight nicely here.
- Lines 12-14 are for speeding up the loop doubly; instead of incrementing by
1each time, it is by
2, with the
Ifto offset the
3on the first run.
not(Bwas very efficient, to end the loop whenever a match to identify the number as a composite number is found.