C/C++ program to display the number if its factorial is given.if there is no such number print “-1”.

Input:

120

Output:

5

Input:

23

Output:

-1

C/C++ program to display the number if its factorial is given.if there is no such number print “-1”.

Input:

120

Output:

5

Input:

23

Output:

-1

@code_hacker please tell the range of the number N.

If the number is within the range of long long integer then start dividing the number from 2 onwards and check the remainder everytime. If it is 0, then proceed with other number else print -1.

Here is the program:

scanf("%lld",&n); for(i=2;1;i++) { if(n%i==0) n/=i; else if(n!=1) { printf("-1\n"); break; } else break; } if(n==1) printf("%d\n",i);

1 Like

according to your code the output is one more than the required number.

I think the last statement should be printf("%d",i-1);

the range of n is 1<=n<=65535

ok…thank you for pointing it out.