rem: unsigned long divisor = 3; unsigned long square = divisor * divisor;
add: size_t divisor = 3; size_t square = divisor * divisor;
context: is_prime (unsigned long candidate){  unsigned long divisor = 3;  unsigned long square = divisor * divisor;  while (square < candidate && (candidate % divisor))    {      divisor++;      square += 4 * divisor;      divisor++;    }  return (candidate % divisor ? true : false);}