이 튜토리얼에서는 주어진 숫자가 유효한지 여부를 찾기 위한 다양한 방법을 탐색할 것입니다. 더 이상 기한 없이 시작합시다.
방법-1
소수를 찾는 일반적인 방법입니다.
-
숫자가 1보다 작거나 같으면 False를 반환합니다.
-
숫자가 임의의 숫자로 나눌 수 있는 경우 함수는 False를 반환합니다.
-
루프 후 True를 반환합니다.
예시
# checking for prime
def is_prime(n):
if n <= 1:
return False
else:
for i in range(2, n):
# checking for factor
if n % i == 0:
# return False
return False
# returning True
return True
print(f"Is 2 prime: {is_prime(2)}")
print(f"Is 4 prime: {is_prime(4)}")
print(f"Is 7 prime: {is_prime(7)}") 출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Is 2 prime: True Is 4 prime: False Is 7 prime: True
방법-2
이 방법에서는 반복 횟수를 n의 제곱근으로 잘라 반복 횟수를 줄입니다. 코드를 살펴보겠습니다.
예시
import math
# checking for prime
def is_prime(n):
if n <= 1:
return False
else:
# iterating loop till square root of n
for i in range(2, int(math.sqrt(n)) + 1):
# checking for factor
if n % i == 0:
# return False
return False
# returning True
return True
print(f"Is 2 prime: {is_prime(2)}")
print(f"Is 4 prime: {is_prime(4)}")
print(f"Is 7 prime: {is_prime(7)}") 출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Is 2 prime: True Is 4 prime: False Is 7 prime: True
방법-3
이전 방법에서는 짝수를 확인했습니다. 짝수는 2를 제외하고는 소수가 될 수 없다는 것을 우리 모두 알고 있습니다. 따라서 이 방법에서는 시간을 줄이기 위해 모든 짝수를 제거합니다.
예시
import math
# checking for prime
def is_prime(n):
# checking for less than 1
if n <= 1:
return False
# checking for 2
elif n == 2:
return True
elif n > 2 and n % 2 == 0:
return False
else:
# iterating loop till square root of n
for i in range(3, int(math.sqrt(n)) + 1, 2):
# checking for factor
if n % i == 0:
# return False
return False
# returning True
return True
print(f"Is 2 prime: {is_prime(2)}")
print(f"Is 4 prime: {is_prime(4)}")
print(f"Is 7 prime: {is_prime(7)}") 출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Is 2 prime: True Is 4 prime: False Is 7 prime: True
결론
튜토리얼에 의문점이 있으면 댓글 섹션에 언급하세요.