fromzero
쪼렙 성장기
fromzero
전체 방문자
오늘
어제
  • Home
    • TIL
      • Python
      • HTML&CSS
      • Django
      • React
      • React Native
      • Git & Jira
      • Tech News
    • Algorithm
      • SW Expert Amademy
      • Baekjoon Online Judge
    • SSAFY
    • Daily log

인기 글

최근 댓글

최근 글

글쓰기 | 설정
hELLO · Designed By 정상우.
fromzero

쪼렙 성장기

카테고리 없음

6219. 파이썬 함수 연습문제

2022. 1. 16. 02:50

 

문제 6219
소수를 검사하는 함수를 정의하고, 다음의 결과와 같이 사용자가 입력한 숫자가 
소수인지를 판단하는 프로그램을 작성하십시오.
소수일 경우 "소수입니다." 출력, 아닐 경우 "소수가 아닙니다." 출력

[입력]
13

[출력]
소수입니다.

출처 SW Expert Academy

 

 

아니이 너무 어려운 거 아니요..?!

사실 본 강의 자체가 너무 어렵다.. 함수 파트 이해를 못하겠어서 문제 풀면서 한 번 부딪혀 보자! 하는 마음으로 문제 풀이부터 시작했다. 쪼오금 알겠다. 쪼오금..

 

처음에 문제를 제대로 안 읽고; 일단 그냥 해보자! 하면서 함수도 안 만들고 그냥 부딪혔다.

이 앞에 약수 구하는 문제를 풀었었고, 소수는 결국 약수가 1과 자기 자신이므로 그 부분을 활용하면 된다고 생각했다.

그래서 이전 문제에 썼던 코드를 그대로 써봤는데 이걸 어떻게 세어야 할 지 감이 안오더라고ㅠㅠㅠ?

 

T = int(input())

for i range in (1, T + 1):
	if T % i ==0:
    ...

 

그래서 소수 판별에 대해 검색했고 한 블로그를 보고 역발상을 배웠다; ㅎㅎ

1과 자기 자신이 아니라 2부터 자기 자신-1인 수로 나누어 지면 소수가 아니다!라고 판단하는거지.

T = int(input())

for i in range(2, T):
	if T % i == 0:
    	print("소수가 아닙니다.")
    else:
    	print("소수입니다.")

 

이 블로그를 보고 함수 정의를 해야한다는 걸 깨닫고; ㅋㅋ 그대로 써봤는데, 안되더라고..

그래서 return 을 print로 바꾸어봤지만 ㅜㅜ

소수입니다. 라는 결과가 5번인가 반복되더라.

 

 

그래서 뭐 솔직하게 문제 번호를 검색했다...

그렇게 찾은 해설 그리고 해설을 뜯어먹으며(?) 이해하게 됐다...ㅎㅎ

해설이 꼭 나쁜 것만은 아니에요 여러분...

 

1차 시도(노양심) Pass

T = int(input()) #함수 정의하기 전에 변수부터 정의할 것

def prime(x): #함수는 변수 정의하듯, 엑셀에서 사용자 정의 함수처럼 내 맘대로 만들어 쓰는거였다..!
	count = 0 #여기서는 약수가 몇 개인지를 세는 방식으로 문제를 해결했다
    
    for i in range(1, x):
    	if T % i == 0:
        	count += 1 #T가 i로 나누어질 때마다 count에 1을 누적해서 더한다
    
    if count == 2:
    	print("소수입니다.") #for문이 끝나고 count의 수를 계산하므로 줄 맞추기!
    else:
    	print("소수가 아닙니다.")
        
print(prime(x))

 

내가 배운 것은

** 함수를 정의하기 전에 변수부터 정의해주자

** 함수는 변수처럼, 또는 엑셀의 사용자 정의 함수처럼 내맘대로 만들어 쓰는 것!

 

아직 의문

** 그치만.. return과 print의 차이

** 개념 강의 대부분 ^^...

저작자표시 (새창열림)
    fromzero
    fromzero

    티스토리툴바