Cho số a, tìm n sao cho n! (giai thừa) bằng a. Giai thừa n = n * (n-1) * ... * 1. Nếu không tồn tại n nguyên, trả về -1.
Ví dụ, a = 120, đầu ra 5.
Các bước giải quyết:
i := 0,num := 1.L:= danh sách rỗng.- Trong khi
i < a:i = factorial(num).- Thêm
ivàoL. num += 1.
- Nếu
a in L, trả vềindex(a) + 1. - Ngược lại trả về -1.
Ví dụ minh họa
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