본문 바로가기
ps

[백준] 1437 - 수 분해

by kariskan 2023. 7. 7.

https://www.acmicpc.net/problem/1437

 

1437번: 수 분해

첫째 줄에 음이 아닌 정수 N이 주어진다. N은 1,000,000보다 작거나 같다.

www.acmicpc.net

 

이 문제를 처음 보고 당연히 2로 계속 분해하면 곱의 개수가 많아지고, 분해 곱이 커질 줄 알았다.

하지만 그렇지 않고, 3으로 분해했을 때가 가장 컸다.

 

다음과 같은 경우를 보자.

10 = 2 + 2 + 2 + 2 + 2 -> 2 * 2 * 2 * 2 * 2 = 32

10 = 3 + 3 + 2 * 2 -> 3 * 3 * 2 * 2 = 36

 

또한, 5 이상의 모든 수는 2와 3의 합으로 나타낼 수 있다.

주의해야 할 점은, 4의 최대 분해 곱은 4라는 것이다. (2 + 2 또는 4)

 

#include <iostream>
using namespace std;

int main() {
	
    int n;
    cin >> n;
    long long ans = 1;
    while (n >= 5) {
    	ans = (ans * 3) % 10007;
        n -= 3;
    }
    
    ans = (ans * n) % 10007;
    cout << ans;
}

'ps' 카테고리의 다른 글

[백준] 1132 - 합  (0) 2023.07.18
[백준] 22116 - 창영이와 퇴근  (0) 2023.07.07
[백준] 17398 - 통신망 분할  (0) 2023.07.07
[백준] 18119 - 단어 암기  (0) 2023.07.05
[백준] 10251 - 운전 면허 시험  (0) 2023.07.05

댓글