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