출처
백준 온라인 저지
https://www.acmicpc.net/problem/1978
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
첫 줄에 수의 개수 N이 주어진다. N은 100 이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
풀이
소수란 1과 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 뜻합니다.
2, 3, 5, 7, 11, 13... 와 같은 수는 소수가 됩니다.
이를 이용하여 1과 자신만으로 나누어 떨어지는지 체크하는 함수를 만들어 놓고 filter 메서드를 이용하여 소수인지 확인하여 줍니다.
filter 메서드를 이용하여 나온 배열은 소수인 것만 남기 때문에 해당 배열의 길이를 출력하여 줍니다.
[JS] 소수 판별하기
소수란? 소수란 1과 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 뜻합니다. 2, 3, 5, 7, 11, 13... 와 같은 수는 소수가 됩니다. 소수를 구하는 3가지의 방법을 알아보겠습니다. n까지 모두 판별
gurtn.tistory.com
코드
const isPrime = (n) => {
if (n == 1) {
return false;
}
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
const input = require('fs').readFileSync('/dev/stdin').toString().trim();
const [c, nums] = input.split("\n");
console.log(nums.split(" ").filter(v => isPrime(v)).length);