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);
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.