Python/Python Basic Lesson

[파이썬 강의 문제풀이] 소수(prime number) 구하기

Pydole 2020. 5. 14. 12:27

 

①. 1부터 N까지의 자연수를 전부 나열 

② 1을 지운다.

③ 2를 제외한 2의 배수들을 모두 지운다.

④ 3를 제외한 2의 배수들을 모두 지운다. 

⑤ 5를 제외한 2의 배수들을 모두 지운다. 

⑥ 7를 제외한 2의 배수들을 모두 지운다. 

 

 

startNum = 1
endNum = 100

nums = [ n for n in range(startNum,endNum+1) ]


for c, i in enumerate((1,2,3,5,7),1):
    if i == 1:
        nums.remove(1)
        print('[{0}]: {1}을 삭제하였습니다.'.format(c,i))
    
    else:
        nums = [ x for x in nums if x == i or x % i != 0 ]
        print('[{0}]: {1}를 제외한 {1}의 배수를 모두 삭제하였습니다.'.format(c,i))
    
    print()

print('{0} 과 {1} 사이의 소수는 : '.format(startNum,endNum),(' '.join(map(str,nums))))




[1]: 1을 삭제하였습니다.

[2]: 2를 제외한 2의 배수를 모두 삭제하였습니다.

[3]: 3를 제외한 3의 배수를 모두 삭제하였습니다.

[4]: 5를 제외한 5의 배수를 모두 삭제하였습니다.

[5]: 7를 제외한 7의 배수를 모두 삭제하였습니다.

1 과 100 사이의 소수는 :  2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97