[백준] 2581: 소수 - 파이썬[python]

다인·2024년 8월 20일

백준

목록 보기
39/112
post-thumbnail

시간 차이가 궁금해서 append를 하는 방법과 remove를 하는 방법 2가지로 코드를 짜보았다.

1. remove

N = int(input())
M = int(input())
prime = list(range(N, M+1))

for num in range(N, M+1):
    if num == 1:
        prime.remove(num)
    for i in range(2, num//2 + 1):
        if num % i == 0:
            prime.remove(num)
            break

if prime:
    print(sum(prime))
    print(min(prime))
else:
    print(-1)
  • num이 1일 때는 소수가 아님을 명심하자!! 처음에 1 제외 안 해줘서 틀렸당

2. append

N = int(input())
M = int(input())
prime = []

for num in range(N, M+1):
    is_prime = True
    if num > 1:
        for i in range(2, num//2 + 1):
            if num % i == 0:
                is_prime = False
                break
        if is_prime == True:
            prime.append(num)

if prime:
    print(sum(prime))
    print(min(prime))
else:
    print(-1)

결과

찾아보니 remove는 리스트에서 해당 숫자를 찾고 제거해야 하므로 시간이 더 오래 걸린다고 한다. 생각보다 차이가 많이 나서 놀라긴 했당ㅎ

0개의 댓글