세준이는 정수 S와 K가 주어졌을 때, 합이 S인 K개의 양의 정수를 찾으려고 한다. 만약 여러개일 경우 그 곱을 가능한 최대로 하려고 한다.
가능한 최대의 곱을 출력한다.
만약 S=10, K=3이면, 3,3,4는 곱이 36으로 최대이다.
입력
첫째 줄에 두 수 S와 K가 주어진다. K는 20보다 작거나 같고, S는 100보다 작거나 같으며 K보다 크거나 같다.
출력
첫째 줄에 정답을 출력한다. 답은 9223372036854775807보다 작다.
예제 입력 1
10 3
예제 출력 1
36
예제 입력 2
10 1
예제 출력 2
10
예제 입력 3
10 10
예제 출력 3
1
예제 입력 4
13 8
예제 출력 4
32
예제 입력 5
7 2
예제 출력 5
12
10 3의 경우 10을 3으로 나누면 3,3,3 이 되고 1이 남는다.
이 1을 하나 더해서 4,3,3 으로 만들면 곱의 최대가 된다.
최대의 곱을 구하는 방법은 예를 들어 10을 1,2,3,4 라고 했을 때
1이 적을 수록 값이 커진다. 2,2,3,3 로 만들었을 때 2*2가 4와 같기 때문에
4 3 3 이 가장 큰 값이 된다.
N,K = map(int,input().split())
a = N // K
b = N % K
L = [a]*K
for i in range(b):
L[i] +=1
ans = 1
for i in L:
ans *=i
print(ans)
어려운 문제를 계속 피하면 발전할 수 없다. 결핍과 열등함을 계속 꺼내서 현실과 마주해야 한다.
그래야 발전할 수 있다.