티스토리 뷰

1978번: 소수 찾기

방법 1 : cnt += 1 : 소수를 찾아서 1을 더하는 방법

n = int(input())
num_list = list(map(int, input().split()))[:n]
cnt = 0
for num in num_list:
    isPrime = True
    for i in range(2, num):
        if num % i == 0:
            isPrime = False
            break
    if isPrime and num != 1:
        cnt += 1
print(cnt)

소수 여부를 저장하기 위한 isPrime이라는 boolean 타입의 객체를 생성한다. 2부터 주어진 숫자 num까지 for문을 돌리면서 num이 i로 나누어지면 소수가 아니므로 isPrime을 False로 설정한다. for문을 돌린 후, isPrime이 True이면서 num이 1이 아니면 소수이므로 cnt에 1을 더한다.


방법 2 : n -= 1 : 소수가 아닌 값을 찾아 n에서 빼는 방법

n = int(input())
num_list = list(map(int, input().split()))[:n]
for num in num_list:
    isPrime = True
    for i in range(2, num):
        if num % i == 0:
            isPrime = False
            break
    if num == 1 or not isPrime:
        n -= 1
print(n)

2581번: 소수

m = int(input())
n = int(input())
prime_list = []
for num in range(m, n + 1):
    isPrime = True
    for i in range(2, num):
        if num % i == 0:
            isPrime = False
            break
    if isPrime and num != 1:
        prime_list.append(num)

print(-1 if not len(prime_list) else f"{sum(prime_list)}\n{prime_list[0]}")

소수를 구하는 부분은 1978번 방법1과 같다. 소수인 경우 prime_list에 추가한다.
prime_list의 길이가 0이면 -1을 출력하고, 0이 아니면 f-string을 이용하여 합과 최소값을 출력한다. prime_list는 작은 수부터 추가되었기 때문에 정렬을 하거나 min()을 사용할 필요없이 0번째 원소를 출력하였다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
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 29 30
글 보관함