Algorithm/COS
[COS Pro 1급, Python] 3차 6번 : 소수의 합으로 표현하기
JMcunst
2022. 2. 25. 12:29
728x90
반응형
문제 유형
빈칸
난이도
normal
Note
1. 빈칸 유형이라서 난이도는 쉬움.
2. 하지만, 첫번째 for문에서 소수 리스트를 만드는 부분의 로직은 암기 필요! 절대절대절대 중요. '에라토스테네스의 체' 라는 유명한 개념이 사용됨.
Code
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
# 3차 6번
def solution(n):
answer = 0
primes = [2]
for i in range (3, n + 1, 2) :
is_prime = True
for j in range(2, i) :
if i % j == 0 :
is_prime = False
break
if is_prime :
primes.append(i)
prime_len = len(primes)
for i in range(0, prime_len - 2) :
for j in range(i + 1, prime_len - 1) :
for k in range(j + 1, prime_len) :
if primes[i]+primes[j]+primes[k] == n:
answer += 1
return answer
n1 = 33
ret1 = solution(n1)
print("solution 함수의 반환 값은", ret1, "입니다.")
n2 = 9
ret2 = solution(n2)
print("solution 함수의 반환 값은", ret2, "입니다.")
※ 가끔 코드 중 print(~)가 있습니다. 정리 못한 점 죄송합니다.
728x90
반응형