N
Nobody
This is not portable (i.e does not generate the same sequence on all
platforms) as the size of unsigned long is platform-depedent.
The standard guarantees that "unsigned long" is at least 32 bits. Any
additional bits will have no effect upon the result of the above. Even a
31-bit unsigned long would produce the same result.
Addition and multiplication have the property that bit N of the result is
only affected by bits <= N of the inputs. Division/remainder by 2^N are
just shift/mask.