Development Artist

[COS Pro 1급, Python] 3차 6번 : 소수의 합으로 표현하기 본문

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
반응형
Comments