Здравствуйте, LaptevVV, Вы писали:
LVV>Если точно известно, что N! = F, то просто счистаем факториал заново.
LVV>LVV>unsigned int anti(double F)
LVV>{
LVV> double N=1;
LVV> for(unsigned int i = 2; N < F; i++) N*=i;
LVV> return i;
LVV>}
LVV>
И верно: просто, как и все гениальное! Спасибо!
Добавлю, пожалуй, только проверку на то, является ли F вообще факториалом какого-нибудь числа:
unsigned int anti(double F)
{
double N=1;
for(unsigned int i = 2; N < F; i++){
N*=i;
if(floor(F/N)!=F/N) return 0;
}
return i;
}