유자차의 재테크 공부방

[프로그래머스] 소수찾기 본문

파이썬/알고리즘 문제 풀이

[프로그래머스] 소수찾기

유자차H 2022. 3. 5. 19:11
반응형

while ~ else 문

# while문을 수행하는 동안 break가 일어나지 않으면 else문 실행

# while문을 수행하는 동안 break가 일어나지 않으면 else문 실행

num = 1
while num < 5:
	print("{}는 5이하인 수 입니다.".format(num))
    num += 1
else:
	print("{}는 5이상인 수 입니다. 종료합니다.".format(num)
    
##### 출력 결과 ######
# 1는 5이하인 수 입니다.
# 2는 5이하인 수 입니다.
# 3는 5이하인 수 입니다.
# 4는 5이하인 수 입니다.
# 5는 5이상인 수 입니다. 종료합니다.
# for ~ while 문

for i in range(2, 6):
    for j in range(2, i):
        if i % j == 0:
            print("{i}는 {j}의 배수다.".formta(i,j))
            break
    else:
        print("{i}는 소수다.".format(i))
        
##### 출력 결과 ######
# 2는 소수다.
# 3는 소수다.
# 4는 2의 배수다.
# 5는 소수다.

풀이 방법 1 

2부터 n-1까지의 숫자를 n에 나누어주면서 소수인지 확인

def solution(nums):
    n = len(nums)
    ans = 0
    for i in range(n-2):
        for j in range(i+1,n-1):
            for k in range(j+1,n):
                temp = nums[i]+nums[j]+nums[k]

                div = 2
                while div != temp:
                    if temp%div == 0:
                        break
                    div += 1
                    if div == temp:
                        ans += 1
    return ans
from itertools import combinations as cb
def solution(nums):
    ans = 0
    for temp in cb(nums, 3):
        div = 2
        while div != sum(temp):
            if sum(temp)%div == 0:
                break
            div += 1
        else:
            ans += 1
    return ans
반응형
Comments