효율적인 소수 판별

Beginner

This tutorial is from open-source community. Access the source code

소개

수학에서 소수 (prime number) 는 1 보다 큰 자연수로서, 두 개의 작은 자연수의 곱으로 표현될 수 없는 자연수를 말합니다. 예를 들어, 5 는 소수입니다. 왜냐하면 5 를 곱셈으로 나타내는 유일한 방법인 1 × 5 또는 5 × 1 은 5 자체를 포함하기 때문입니다. 하지만 4 는 소수가 아닙니다. 왜냐하면 4 는 2 × 2 와 같이 두 숫자가 4 보다 작은 곱셈으로 표현될 수 있기 때문입니다. 이 챌린지에서는 주어진 숫자가 소수인지 아닌지를 확인하는 Python 함수를 작성해야 합니다.

숫자가 소수인지 확인

정수 n을 입력으로 받아 숫자가 소수이면 True를, 그렇지 않으면 False를 반환하는 Python 함수 is_prime(n)을 작성하십시오. 이 문제를 해결하려면 다음 규칙을 따라야 합니다.

  • 숫자가 0, 1, 음수 또는 2의 배수인 경우 False를 반환합니다.
  • all()range()를 사용하여 3부터 주어진 숫자의 제곱근까지의 숫자를 확인합니다.
  • 어떤 숫자도 주어진 숫자를 나누지 않으면 True를, 그렇지 않으면 False를 반환합니다.
from math import sqrt

def is_prime(n):
  if n <= 1 or (n % 2 == 0 and n > 2):
    return False
  return all(n % i for i in range(3, int(sqrt(n)) + 1, 2))
is_prime(11) ## True

요약

이 챌린지에서는 Python 을 사용하여 주어진 숫자가 소수인지 아닌지를 확인하는 방법을 배웠습니다. all()range() 함수를 사용하여 3부터 주어진 숫자의 제곱근까지의 숫자를 확인했습니다. 또한 어떤 숫자도 주어진 숫자를 나누지 않으면 True를, 그렇지 않으면 False를 반환하는 방법도 배웠습니다.