Рассмотрим случай, если m четно, а все значения k четны. Тогда все значения хеш-функции также будут четными.
Например, рассмотрим случай m = 6 значений хэширования:
Input values: 0, 2, 4, 6, 8, 10, 12, 14, 16, ...
Hash values: 0, 2, 4, 0, 2, 4, 0, 2, 4, ...
Если вы используете эти значения хеш-функции в качестве индексов в таблице, то половина таблицы будет неиспользована. С другой стороны, если m простое число, вы получите равномерное распределение значений хеш-функции, даже если все входные значения имеют общий множитель.
Рассмотрим те же входные значения, но с m = 7:
Input values: 0, 2, 4, 6, 8, 10, 12, 14, 16, ...
Hash values: 0, 2, 4, 6, 1, 3, 5, 0, 2, ...
Несмотря на то, что все входные значения являются четными, значения хеш-функции по-прежнему равномерно распределены по [0..6].
Итак, подведем итог: если m простое число, то вы все равно получите равномерное распределение значений хеш-функции, даже если все входные значения делятся на общий простой множитель (кроме m).