nod = nod / (pow((double)div, (double)power));
Мы делим НОД на степень простого множителя в НОК’е, цифру, на которую он, скорее всего, не делится.1ULL << counter
, разумеется.nokm[it->first] - it->second
— если, по-твоему, верна именно разность, а не единица.2ULL << counter
.
Побочные эффекты, возврат значения в консоль, простыня кода без попыток её прокомментировать или структурировать, и многое другое.