error

for i in range(2, 2):

kellykang 2021. 3. 12. 00:11
input = 20

# 소수는 자기 자신과 1외에는 아무것도 나눌 수 없다.
# 주어진 자연수 N이 소수이기 위한 필요 충분 조건은
# N이 N의 제곱근보다 크지 않은 어떤 소수로도 나눠지지 않는다.
# 수가 수를 나누면 몫이 발생하는데, 몫과 나누는 수 둘 중 하나는 반드시 N 제곱근 이하
def find_prime_list_under_number(number):
    prime_list = []
    for n in range(2, number + 1):  # n = 2 ~ 20
        # print("n: ", n)
        for i in range(2, n):       # i = 2, n = 2,3    / n자기 자신을 자기 보다 더 작은 수들로 나누겠다.
            print("프린트가 나오면 n이 2인데, 포문 안에 들어온 것.")
            if n % i == 0:
                # print("i: ", i)
                # print("n%i: ", n%i)
                break
        else:
            prime_list.append(n)

    return prime_list

result = find_prime_list_under_number(input)
print(result)

 

for i in range(2, n):

이 부분에서 n이 2일 때, (i도 2)

if 문 안에 들어가면 2 % 2 == 0이 충족되어서 break문을 맞는데, 왜 prime_list에 2가 들어가는지 이해를 못해서 

중간 중간 print찍어서 확인해보다가 여기에 시간을 많이 써서, 팀원 분께 도움 요청했다.

 

for i in range(2, 2):

이렇게 되면, 범위에 아예 해당이 안돼서 for문 안으로 들어갈 수 없다.

... 그러네... 범위가 말이 안되네. 저게 왜 지금 보이는 건지...

뭐... 오늘 실수 했으니까 다음번엔 더 잘 보이겠지.