Я и для других значений считал:
По-хорошему надо посчитать и для других первых свободных простых, не только для 67.
Посчитал не шибко высоко для первого свободного простого 53 — 71. Отклонения от показанной статистики незначительные. Чем больше первое свободное простое, тем позже происходит обгон 8-ю делителями 4-х делителей:
Код:
first
free
prime 10^ 1e6 2 4 8 16
53 25 138684 128 319 323 168
59 25 136068 130 323 323 164
61 26 133774 125 322 323 168
67 27 131581 123 319 324 170
71 27 129629 125 321 323 168
2. Для

- существенное расхождение, которое не объясняется разницей между

и

Напомню, что считались не только

, а и другие сборки, в том числе экзотические, для 4, 8 и 16 делителей соответственно.
Собственно, вот программа, это не самый быстрый вариант, но уж какой нашёлся. Кому угодно, может посчитать с разными параметрами.
Код:
{t0=getwalltime();print;
ogrp = 71;
ogrfac = precprime(ogrp);
for (ste = 8, 30,
t1=getwalltime(); kol = vector(4); kpod = 0;
forstep( n = 10^ste - 1 * 10^6 - 1, 10^ste - 1, 2,
if(factor(n,ogrfac)[1,1] < ogrp, next);
fac = factor(n); kunp = matsize(fac)[1];
if(fac[1,1] >= ogrp,
kpod++; kdel = 1;
for(i = 1, kunp, kdel *= fac[i,2] + 1);
if(kdel == 8, kol[3]++;next);
if(kdel == 4, kol[2]++;next);
if(kdel == 16, kol[4]++;next);
if(kdel == 2, kol[1]++);
));
print1(" ", ste," ", kpod," ");
for(i=1,4,print1(round(kol[i]/kpod*1000)," "));
print(," ", strtime(getwalltime()-t1));
);
print;print(strtime(getwalltime()-t0));print;
}quit