[PYTHON] 소수찾기

  <1~N까지 자연수중 소수찾기>

 

  • 문제

N이 주어졌을 때 N이하의 자연수 중 소수를 출력해라

  • input 값

33

-> 1~33중 소수인 것을 출력해라

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
= int(input()) # N=33 : 1~33중 소수인 것을 찾기. input()은 string이므로 int로 바꿔주어야 한다.
n=0 #찾은 소수의 개수를 알기위한 것
 
print(" 1부터 {}까지 소수 - ".format(N), end = ' ')
 
for i in range(2, N+1): #1은 당연히 소수가 아니므로 2부터 검사를 한다. 2 ~ N까지
    boolean = True # 처음에 모든 숫자를 소수라고 해놓고, 검사를해보자.
    for k in range(2, i): #자기자신(i)를 제외한다. 2 ~ i-1까지 반복
        if i%k == 0#자기자신(i)전까지 나눴을 때, 나누어 떨어진다면,
            boolean = False # 소수가 아니다 -> false -> break : 더이상검사필요없음
            break
    if boolean is True: # boolean이 True 상태로 내려오면 소수라는 뜻이므로, 출력
        print(i, end= ' '# enter가 아니라 바로 옆에 출력하기위한 것이다.
        n+=1 # 소수를 찾을 때마다 1씩 +하는 것이다.
 
print("\n 1부터 {}까지의 소수의 개수는 : {} 이다.".format(N,n))
cs
  • 결과값

1부터 33까지 소수 -  2 3 5 7 11 13 17 19 23 29 31

1부터 33까지의 소수의 개수는 : 11 이다.

 

  • 배울코드

1. row 20 에서 중간마다 변수를 넣는것이 아니라,format함수를 사용하여 출력하였다.

2. row 11 : boolean값을 True로 두고 시작하여, 원하는 위치에서 boolean값을 바꾸어 소수를 출력한다.

>>  이런 방식이 코딩에서 많이 쓰이는 것같다. 의미없어보이는 T/F값을 선언해주어 원하는 값을 출력하는 것이다.

 

*)

어떤 피드백이든 댓글부탁드립니다.

더 좋은 방법이 있다면 알려주세요.

도움이 되셨다면, 하트버튼 또는 댓글부탁드려요~

요청할 문제가 있다면 댓글 부탁드려요!!!

*(

+ Recent posts