Zamiast funkcji użyj tablicy, czyli LUT.
const bool is_prime[10001] =
{
0,0,1,1,0,1,0,1,0,0,0,1, //itd... aż do 10000
};
Oczywiście nie pisz tego ręcznie, tylko napisz program który taką tablicę wygeneruje. (w C++ można taką tablicę wygenerować w czasie kompilacji)
Teraz by sprawdzić czy liczba jest pierwsza wystarczy zamienić () na []
if (is_prime[number])
printf("TAK\n");
else
printf("NIE\n");
Można też, jak się chce, w jednym bajcie upakować informację o ośmiu liczbach. To pozwoli lepiej wykorzystać pamięć podręczną, ale czy zwiększy to wydajność - nie wiadomo.