123456789*4/1048576=470.95=470MB assuming sizeof(long unsigned int)=4.
Maximum k within 64MB is 16777216 (actually 16777215 due to your "k++" before the malloc).
If you're limited to 64MB then you can't use 123456789 as the range.