500error
[Cos Pro 1급, Python] 3차 6번 : 소수의 합으로 표현하기 본문
반응형
문제
어떤 수를 서로 다른 소수 3개의 합으로 표현하는 방법의 수를 구하려 합니다.
예를 들어 33은 총 4가지 방법으로 표현할 수 있습니다.
- 3+7+23
- 3+11+19
- 3+13+17
- 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, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[Cos Pro 1급, Python] 3차 8번 : 선풍기를 몇대 사야 하나요 (0) | 2024.02.28 |
---|---|
[Cos Pro 1급, Python] 3차 7번 : 카프리카 수 (0) | 2024.02.28 |
[Cos Pro 1급, Python] 3차 5번 : 전광판 문구 출력 (0) | 2024.02.28 |
[Cos Pro 1급, Python] 3차 4번 : 중복 문자열 이어붙이기 (0) | 2024.02.28 |
[Cos Pro 1급, Python] 3차 2번 : 팰린드롬 문제 (1) | 2024.02.28 |
Comments