본문 바로가기
코딩 따라하기

소수 분류기 따라하기 (Coding Prime Number Separator)

by 전자남성 2020. 12. 3.

소수 분류기 따라하기 (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행은 처음 입력한 xi번 반복되면서 숫자 i로 떨어지면 5행에서 y1이 더해진 값이 인식됩니다.

6행은 반복 i와 공백이 출력됩니다.

7행은 공란을 프린트하여 나중에 출력문이 좋게 보이기 만들기 위해 넣어줍니다.

end=" "는 문장 마지막에 넣을 것을 표현해줄 수 있습니다.

 

말로 하니 설명이 굉장히 난잡해졌습니다. 이제 숫자를 넣어서 간단히 예를 들어 보겠습니다.

x5를 넣는다고 가장해보겠습니다.

3행에서는 i in range(1,6)range 1~5까지 반복됩니다. , i1,2,3,4,5까지 반복됩니다.

 

x5일 경우를 보겠습니다. i1부터 순서대로 돌게 됩니다.

따라서 4행에서 5%1==0이 됩니다.

5행에서 y=1+1 이 됩니다.

6행에서는 i의 숫자 1, 공백을 추가로 프린트합니다.

 

i2번째 돕니다. x는 당연히 5가 됩니다.

4행에서 5%2==0 이 안 됩니다. y=1 그대로입니다.

 

i3번째 돕니다. x는 당연히 5가 됩니다.

4행에서 5%3==0 이 안 됩니다. y=1 그대로입니다.

 

i4번째 돕니다. x는 당연히 5가 됩니다.

4행에서 5%4==0 이 안 됩니다. y=1 그대로입니다.

 

i5번째 돕니다. x는 당연히 5가 됩니다.

4행에서 5%5==0 이 됩니다. y=1+1이 됩니다.

 

따라서 y1+1=2가 되는 경우는 i1일 때와 5일 때 만입니다.

 

8행으로 가서 y==2이면 9행에서 {}는 소수입니다.".format(x) 식으로 출력됩니다.

그렇지 않으면 11행 {}소수가 아닙니다.".format(x) 식으로 출력이 됩니다.

 

 

자 그럼 오늘도 VSCodeTERMINAL에서 코드를 돌려보겠습니다.

 

 

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는 소수가 아닙니다.

 

 

이렇게 보면 굉장히 쉬운데 어찌 보면 굉장히 어렵습니다. 코딩이 그런 것 같습니다.

요즘 같은 시대에 기본적인 코드 읽는 방법만 알아둬도 나중에 큰 도움이 될 것 같다고 생각합니다.

댓글