본문 바로가기

Math & Python

Prime Number

1보다 큰 자연수를 입력받아 소수(Prime Number)인지 합성수(Composite Number)인지 구분한다.

참고로 소수 2 또는 3을 입력할 경우 12라인의 else 문이 실행된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import math
 
# Prime Number or Composite Number print
def chkPrimeNumber(number):
    # 입력된 수의 최대 약수를 구한다.
    maxDivisor = math.ceil(math.sqrt(number))
 
    for i in range(2, maxDivisor):
        if(number % i) == 0:
            print(f'{number} is not a prime number')
            break
    else:
        print(f'{number} is a prime number')
 
 
# 1보다 큰 수가 입력되는지 체크하고 chkPrimeNumber 함수를 호출한다.
def main():
    number = input('Please a nature number greater than 1 : ')
    while(int(number) <= 1) :
        number = input('Please a nature number greater than 1 : ')
    chkPrimeNumber(int(number))
 
 
if __name__ == '__main__':
    main()
cs

 

결과

1
2
Please a nature number greater than 1 : 2
2 is a prime number
cs

 

1
2
Please a nature number greater than 1 : 215
215 is not a prime number
cs