Generation of Prime Numbers
Neither printf() nor bool would cause a significant performance impact.  One reason could be that you're looping through a huge number which, depending on the system, could be as low as 18446744073709551615.  Doing so in serial would likely take a long time for such a range, and you can always consider adding parallelization where feasible.

Beyond that, any slowdown would be in is_prime().  Not only are there are a few conditionals, which could involve slowdown from branch prediction, but there's another loop that could take a while.  You may consider looking for pre-existing prime algorithms elsewhere, which could be faster than yours.  That should help improve runtime considerably.