Problema tipico no? Dato un numero N dire se è pari o dispari, la soluzione umanamente più immediata qual'è? n % 2, ovvero il resto della divisione con 2 deve essere 0, però ci si dimentica che il computer gira in binario e che può fare un'operazione ancora più veloce: n & 1.
Facendo la somma logica le prestazioni aumentano anche di 1 secondo.

Ecco il codice:

...
if(x & 1) //dispari
else //pari
...

Anche come asm risultate si guadagna:

x % 2
----
00401043   mov         ecx,dword ptr [ebp-4]
00401046   and         ecx,80000001h
0040104C   jns         main+43h (00401053)
0040104E   dec         ecx
0040104F   or          ecx,0FEh
00401052   inc         ecx
00401053   test        ecx,ecx
00401055   je          main+50h (00401060)

x & 1
-----
00401043   mov         ecx,dword ptr [ebp-4]
00401046   and         ecx,1
00401049   test        ecx,ecx
0040104B   je          main+46h (00401056)

Naturalmente funziona anche in C e su tutti i linguaggi che supportano i bit-a-bit.
Come soluzione sarà meno intuitiva, ma più performante è fa anche più skill IMHO ;-)