소수의 개수를 출력하는 프로그램을 작성하는 문제인데,
여기서 쓰는 소수 판별법은 제곱근을 이용한것이다.
소수는 2 ~ (N-1) 에서 약수를 가지고 있지 않는데,
소수를 판단하기위해서 2 ~ (sqrt(n)) 까지만 검사하면 된다는 뜻이다.
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include <stdio.h> int primeSearch(int number) { int i = 0; if(number <= 1) { return 0; } for(i = 2; i * i <= number; i++) { if(numb {er % i == 0) return 0; } } return 1; } int main() { int primeNum[10000]; int count = 0; int i = 0; int j = 0; int num = 0; scanf("%d", &count); for(i = 0; i < count ; i++) { scanf("%d", &primeNum[i]); } for(j = 0; j < count; j++) { if(primeSearch(primeNum[j])) { num++; } } printf("%d", num); } | cs |