https://www.codewars.com/kata/5262119038c0985a5b00029f
Codewars - Achieve mastery through coding practice and developer mentorship
Coding practice for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!
www.codewars.com
DESCRIPTION:
Define a function that takes an integer argument and returns a logical value true or false depending on if the integer is a prime.
Per Wikipedia, a prime number ( or a prime ) is a natural number greater than 1 that has no positive divisors other than 1 and itself.
Requirements
- You can assume you will be given an integer input.
- You can not assume that the integer will be only positive. You may be given negative numbers as well ( or 0 ).
- NOTE on performance: There are no fancy optimizations required, but still the most trivial solutions might time out. Numbers go up to 2^31 ( or similar, depending on language ). Looping all the way up to n, or n/2, will be too slow.
Example
is_prime(1) /* false */
is_prime(2) /* true */
is_prime(-1) /* false */
설명:
받은 정수가 소수인지에 따라 논리 값 true 혹은 false를 반환하는 함수를 정의하세요.
위키피디아에 따르면 소수는 1보다 큰 자연수중 1과 자기 자신만을 약수로 가지는 수입니다.
요구 사항
- 정수 입력이 주어진다고 가정할 수 있습니다.
- 양수만 입력된다고 가정할 수 없습니다. 음수가 주어질수도 있습니다 (또는 0 ).
- NOTE on performance: 복잡한 최적화가 요구되지는 않지만, 가장 간단한 해답은 시간 초과가 될 수 있습니다. 숫자는 최대 2^31 ( 또는 언어에 따라서 비슷한 숫자까지)입니다. n, 또는 n/2까지 순환하는 것은 너무 느립니다.
Example
is_prime(1) /* false */
is_prime(2) /* true */
is_prime(-1) /* false */
풀이
function isPrime(num) {
if(num <= 1) return false;
for(let i = 2; i <= Math.sqrt(num); i++){
if(num % i === 0) return false;
}
return true;
}
수가 수를 나누기 위해서는 그 몫이 항상 필요하며 나누는 수와 몫 중 어느 하나는 반드시 √n 이하여야 하므로 √n까지만 확인하면 된다.
참고
https://ko.wikipedia.org/wiki/%EC%86%8C%EC%88%98_(%EC%88%98%EB%A1%A0)
'알고리즘 > Codewars' 카테고리의 다른 글
[Codewars] Disemvowel Trolls (7 kyu) / JavaScript (0) | 2022.10.05 |
---|---|
[Codewars] Convert string to camel case (6 kyu) / JavaScript (0) | 2022.10.05 |
[Codewars] Wilson primes (8 kyu) / JavaScript (0) | 2022.10.03 |
[Codewars] Even or Odd (8 kyu) / JavaScript (0) | 2022.10.02 |
[Codewars] Convert boolean values to strings 'Yes' or 'No'. (8 kyu) / JavaScript (0) | 2022.10.01 |
댓글