Том учит своего ученика находить факториал числа. Он хотел проверить понимание ученика. Для этого он предоставляет номер. Он хочет, чтобы студенты сказали ему, что число является факториалом того или иного числа.
Пример: если Том предоставит число как 120, студент должен ответить как 5, потому что 5! = 120.
Помогите студенту, написав для этого программу. Обратите внимание, что на входе должно быть число больше нуля. Если входное значение меньше или равно нулю, выходное значение должно быть «Неверный вход». Кроме того, если предоставленный ввод не является точно факториалом числа, скажем, предоставленный ввод - 122, который не является идеальным факториалом числа, он должен возвратить «Извините. Данное число не является идеальным факториалом ».
Пример ввода 1: 5040 Пример вывода 1: 7
Пример ввода 2: 0 Пример вывода 2: Неверный ввод
Пример Вход 3: 700 Пример вывода 3: Извините. Данное число не является идеальным факториалом
public static void main(string[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int m=n;
if (n<=0){
System.out.println("Invalid Input");
return;
}
for(int x=2;m!=x;x++)
{
m=m/x;
}
System.out.println(m);
}
else
System.out.println("the given number is not a perfect factorial")
}
, при выполнении этой программы оно не показывает ожидаемый результат для нефакторных чисел. Как и в примере с выводом 3, я не смог его получить.