Giả sử chúng ta có một số a, chúng ta phải tìm n, sao cho giai thừa của n (n!) Giống với a. Như chúng ta đã biết, giai thừa n =n * (n - 1) * (n - 2) * ... * 1. Nếu không có số nguyên n như vậy thì trả về -1.
Vì vậy, nếu đầu vào là a =120, thì đầu ra sẽ là 5.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- i:=0, num:=1
- L:=một danh sách mới
- while i
- i:=giai thừa của num
- chèn i vào cuối L
- num:=num + 1
- trả về (chỉ số của a trong L) +1
- trả về -1
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
import math class Solution: def solve(self, a): i,num=0,1 L=[] while i < a : i=math.factorial(num) L.append(i) num+=1 if a in L : return L.index(a)+1 else : return -1 ob = Solution() print(ob.solve(120))
Đầu vào
120
Đầu ra
5