def find_prime_number(): global N numbers = [True]*(N+1) numbers[0] = False numbers[1] = False for num in range(2,N+1): if numbers[num]: for num_multi in range(num*2,N+1,num): numbers[num_multi] = False prime_number = [] for num in range(N+1): if numbers[num]: prime_number.append(num) return prime_number N = int(input()) prime_numbers = find_prime_number() DP = [0]*40001 DP[0] = 1 for prime_number in prime_numbers: for num in range(prime_number,N+1): DP[num] = (DP[num]+DP[num-prime_number])%123456789 print(DP[N])
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 16637 괄호 추가하기 (0) | 2021.05.06 |
---|---|
[BOJ/백준] 4803 트리 (0) | 2021.05.06 |
[BOJ/백준] 15961 회전 초밥 (0) | 2021.05.05 |
[BOJ/백준] 14601 샤워실 바닥 깔기(Large) (0) | 2021.05.05 |
[BOJ/백준] 1717 집합의 표현 (0) | 2021.05.05 |