소수 분류기 따라하기 (Coding Prime Number Separator)
이번시간에는 소수와 정수를 분류할 수 있는 코드를 따라 해 보겠습니다.
우선 정수란 양의 정수(자연수), 0, 음의 정수를 통틀어 말한다고 합니다.
출처: 줌
http://study.zum.com/book/14299
하지만 우리가 가장 흔하게 쓰는 자연수는 자연수 1,2,3,4 등등을 의미합니다.
그럼 소수(Prime Number)는 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 말합니다.
출처: 네이버
https://terms.naver.com/entry.nhn?docId=1113970&cid=40942&categoryId=32206
대표적으로 2,3,5,7,13 등을 예로 들 수 있습니다.
그렇다면 이제 우리는 일반 자연수에서 소수만 분간하면 됩니다.
이제 코드를 살펴보겠습니다.
파일 이름은 PrimeNumber.py로 만들어봤습니다.
x=int(input("숫자를 입력하세요."))
y=0
for i in range(1, x+1):
if x%i==0:
y=y+1
print(i,end=" ")
print()
if y==2:
print("{}는 소수입니다.".format(x))
else:
print("{}는 소수가 아닙니다.".format(x))
1행은 int(input())으로 숫자를 입력하면 a에 인식됩니다.
2행은 b값을 초기화시켜주는 과정으로 b값이 순수하게 0이 됩니다.
3행의 range(1, n) 이런 식으로 사용합니다. 여기서 범위는 1,2,3,4 ~ (n-1)의 숫자까지 증가되며 for문을 반복하게 됩니다.
3행에서는 1행의 x의 숫자까지 for문이 반복됩니다.
4행은 처음 입력한 x가 i번 반복되면서 숫자 i로 떨어지면 5행에서 y에 1이 더해진 값이 인식됩니다.
6행은 반복 i와 공백이 출력됩니다.
7행은 공란을 프린트하여 나중에 출력문이 좋게 보이기 만들기 위해 넣어줍니다.
end=" "는 문장 마지막에 넣을 것을 표현해줄 수 있습니다.
말로 하니 설명이 굉장히 난잡해졌습니다. 이제 숫자를 넣어서 간단히 예를 들어 보겠습니다.
x에 5를 넣는다고 가장해보겠습니다.
3행에서는 i in range(1,6)로 range 1~5까지 반복됩니다. 즉, i는 1,2,3,4,5까지 반복됩니다.
x가 5일 경우를 보겠습니다. i는 1부터 순서대로 돌게 됩니다.
따라서 4행에서 5%1==0이 됩니다.
5행에서 y=1+1 이 됩니다.
6행에서는 i의 숫자 1과, 공백을 추가로 프린트합니다.
i가 2번째 돕니다. x는 당연히 5가 됩니다.
4행에서 5%2==0 이 안 됩니다. y=1 그대로입니다.
i가 3번째 돕니다. x는 당연히 5가 됩니다.
4행에서 5%3==0 이 안 됩니다. y=1 그대로입니다.
i가 4번째 돕니다. x는 당연히 5가 됩니다.
4행에서 5%4==0 이 안 됩니다. y=1 그대로입니다.
i가 5번째 돕니다. x는 당연히 5가 됩니다.
4행에서 5%5==0 이 됩니다. y=1+1이 됩니다.
따라서 y가 1+1=2가 되는 경우는 i가 1일 때와 5일 때 만입니다.
8행으로 가서 y==2이면 9행에서 {}는 소수입니다.".format(x) 식으로 출력됩니다.
그렇지 않으면 11행 {}소수가 아닙니다.".format(x) 식으로 출력이 됩니다.
자 그럼 오늘도 VSCode의 TERMINAL에서 코드를 돌려보겠습니다.
C:\Users\ATIV\Downloads\myworks>python .\PrimeNumber.py
숫자를 입력하세요.5
1 5
5는 소수입니다.
C:\Users\ATIV\Downloads\myworks>python .\PrimeNumber.py
숫자를 입력하세요.4
1 2 4
4는 소수가 아닙니다.
이렇게 보면 굉장히 쉬운데 어찌 보면 굉장히 어렵습니다. 코딩이 그런 것 같습니다.
요즘 같은 시대에 기본적인 코드 읽는 방법만 알아둬도 나중에 큰 도움이 될 것 같다고 생각합니다.
'코딩 따라하기' 카테고리의 다른 글
예외처리 따라하기 (Coding Exception Handling) (10) | 2020.12.06 |
---|---|
터틀 그래픽 따라하기 (Coding Turtle Graphics) (18) | 2020.12.04 |
배스킨라빈스 31 따라하기 (Coding Game baskinRobbins31) (16) | 2020.12.02 |
삼육구 따라하기 (Coding Game three-six-nine) (57) | 2020.11.24 |
올려내려 게임 따라하기 (Coding Game Up&Down) (4) | 2020.11.23 |
댓글