I wondered if maybe when I pass a capacity
value, they take the nearest bigger prime so I also looked at the constructor source code and that's exactly what they do:
if (min < 0)
throw new ArgumentException(SR.Arg_HTCapacityOverflow);
foreach (int prime in Primes)
{
if (prime >= min)
return prime;
}