TryI'm willing to bet it is the faster so far and will not be beaten.
instead ofCode:unsigned long j = i * i;
Code:unsigned long j = (i << 1);
You could also treat 2 as a special case and ignore even numbers altogether (both in looping and output).