5일차

Kangdh·2026년 8월 19일

파이썬 교육

목록 보기
5/33

#문제 : 입력받은 정수가 소수인지 아닌지 알려주는 함수를 구현해주세요. 라는 문제가 숙제로 나왔다.
이 문제를 풀기위해 나는 2,3,5,7,11,13과 같은 숫자들이 나누기 2를 했을때 1이 남는다는걸 생각해서 그쪽으로 처음 접근하기 시작해
num % 1 == num > 모든 숫자가 해당
num% 1 == num > 동일
num%num == 1 > 동일
num%num == 0 > 동일
num%2 == 1 > 짝수
num%1 != num > 자기 자신과 1을 나눴을때 자기 자신이 안나옴 > 모두 거짓
num*1=num > 동일

이런식으로 여러 방법을 시도해봤다.

오늘 강사님이 알려주신 풀이를 보니 생각보다 그리 어렵진 않은거같다. 물론 내가 푼게 아니라 단순 보기만 해서 그렇게 생각할수도 있겠지만

def is_prime_number(num):
if num == 1:
return False
i = 2
while i < num:
if num%i == 0:
return False
i += 1

return True

이렇게 짜여진다.

def가 나온 이후로부터 문제풀이의 시간이 상당히 길어졌다. 아예 못푸는것도 생기기 시작했다.
오늘부터는 집에서 복습할때 def문과 다중 def문, def문과 기존에 배웠던걸 합쳐서 코드를 짜는 연습이 매우 필요하다.

수업이 끝나고 집으로 복귀하여 함수 문제를 풀어봤을때 def()를 쓰기 이전의 코드와 이전 def( )에서 쓰던 걸 다음 def()로 불러와서 쓰는 코드 작성이 좀 약한것을 알게되었다. 이번주 진도를 나가긴 해야하니 저녁마다의 복습과 주말에 복습을 해야겠다.

인자로 전달받은 숫자가 10이라고 할때 1부터 10 사이에 존재하는 모든 소수의 합을 리턴하는 함수 구현

def judge_num(num):
if num == 1:
return False
i = 2
while i < num:
if num%i == 0:
return False
i += 1
return True

def num_plus(num):
s = 0
i = 1
while i <= num:
if judge_num(i):
s += i
i += 1
return s

print("소수의 합:{}".format(num_plus(10)))

마지막에 강사님이 설명해주신 내용중 코드를 우선적으로 구현하려는거보단 한글로 어떻게 이 문제를 풀건지 먼저 작성한 다음 코드로 작성하라고 하셨다. 이것도 익숙해져야할거같다.

0개의 댓글