Given that a number in the 0th cell of tape is filled and the rest are all just used as scratch cells (i.e. they all start at 0 and are temporaries -- I don't care what happens to them), I would like to replace the 0th cell with a 0 or a 1. 0 if even, 1 if odd.
Basically, what I want to do is (in C-esque pseudocode):
cell[0] = (cell[0] % 2)
I know that there exists a divmod algorithm defined as follows:
If one does not need to preserve n, use this variant:
# >n d [->-[>+>>]>[+[-<+>]>+>>]<<<<<] # >0 d-n%d n%d n/d
However, since X % 2 == X & 1
, i.e. X mod 2 is the rightmost bit of X, I think that divmod might be overkill in terms of complexity of calculation.
Is there any better algorithm/technique for finding out if the cell is even or not?