반응형
Notice
Recent Posts
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

500error

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

알고리즘/파이썬

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

Internal Server Error 2024. 2. 28. 18:58
반응형

문제

어떤 수를 서로 다른 소수 3개의 합으로 표현하는 방법의 수를 구하려 합니다.
예를 들어 33은 총 4가지 방법으로 표현할 수 있습니다.
  1. 3+7+23
  2. 3+11+19
  3. 3+13+17
  4. 5+11+17
자연수 n이 매개변수로 주어질 때, n을 서로 다른 소수 3개의 합으로 표현하는 방법의 수를 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.
※ 1,000 이하인 소수는 168개 있습니다.

 

 

 

 

 

 

 

 

 

 

 

코드

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 i % j != 0 :
			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, "입니다.")
반응형
Comments