#include<stdio.h>
int rev_fact(int n)
{
if(n<1)
return -1;
if(n==0)
return 1;
int f=1, i=1;
while(f<n){
i++;
f*=i;
}
if(f==n)
return i;
return -1;
}
int main(int argc, char const *argv[])
{
int x;
if(rev_fact(x)==-1)
printf("No factorial is equal to %d",x
); else
printf("%d!=%d",rev_fact
(x
),x
); return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KCmludCByZXZfZmFjdChpbnQgbikKewoJaWYobjwxKQoJCXJldHVybiAtMTsKCWlmKG49PTApCgkJcmV0dXJuIDE7CglpbnQgZj0xLCBpPTE7Cgl3aGlsZShmPG4pewoJCWkrKzsKCQlmKj1pOwkKCX0KCWlmKGY9PW4pCgkJcmV0dXJuIGk7CglyZXR1cm4gLTE7Cgp9CmludCBtYWluKGludCBhcmdjLCBjaGFyIGNvbnN0ICphcmd2W10pCnsKCWludCB4OwoJcHJpbnRmKCJQbGVhc2UgZ2l2ZSB4Iik7CglzY2FuZigiJWQiLCZ4KTsKCWlmKHJldl9mYWN0KHgpPT0tMSkKCQlwcmludGYoIk5vIGZhY3RvcmlhbCBpcyBlcXVhbCB0byAlZCIseCk7CgllbHNlCgkJcHJpbnRmKCIlZCE9JWQiLHJldl9mYWN0KHgpLHgpOwoJcmV0dXJuIDA7Cn0K