coding study/programmars
[level 0] 팩토리얼
yeoonii
2024. 6. 1. 18:05
문제 설명
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
- i! ≤ n
제한사항
- 0 < n ≤ 3,628,800
기존 메소드 말고 직접 만들어 사용하고 싶었다.
어차피 10까지라고 제한 사항이 걸려 있어서 ans=10으로 고정하고 하나씩 뺐다.
def solution(n):
ans = 10
while n < factorial_for(ans):
ans -= 1
return ans
def factorial_for(n):
ret = 1
for i in range(1,n+1):
ret *= i
return ret
다른 풀이
def solution(n):
divider=0
while 1:
divider+=1
if n/divider < 1:
break
else:
n/=divider
return divider-1
def solution(n):
base = 1
m = 1
while base <= n:
m += 1
base *= m
return m-1