-
[백준 1978] 소수 찾기C 프로그래밍/BOJ 2022. 7. 31. 21:59728x90
https://www.acmicpc.net/problem/1978
#include <stdio.h> int cnt; void is_prime(int n) { if (n == 1) return; for (int i = 2; ; i++) { if (i * i > n) break; if (!(n % i)) return; } cnt++; } int main(void) { int num, n; scanf("%d", &num); for (int i = 0; i < num; i++) { scanf("%d", &n); is_prime(n); } printf("%d", cnt); }
이 문제는 scanf로 받은 수가 소수인지 아닌지만 판별하면 되기 때문에 for문을 한개만 써도 된다.
어차피 n이 1이거나, 약수가 존재할 때는 더는 볼 필요 없으므로 return을 하여 아예 is_prime 함수를 빠져나오도록 해줬다.
다만 i * i > n 이면 i가 n의 제곱근이 되었을 때 까지 약수가 없는 경우이므로, break를 해주어 루프를 빠져나오고 cnt를 증가시키도록 구현했다. (이 때는 소수이니까)
728x90'C 프로그래밍 > BOJ' 카테고리의 다른 글
[백준 13458] 시험감독 (0) 2022.08.13 [백준 2869] 달팽이는 올라가고 싶다 (0) 2022.08.01 [백준 9020] 골드바흐의 추측 (0) 2022.07.31 [백준 4948] 베르트랑 공준 (0) 2022.07.29 [백준 2581] 소수 (0) 2022.07.29