https://www.acmicpc.net/problem/1978
코드 (C)
#include <stdio.h>
int check(int n)
{
if (n == 1) return 0;
for (int i = 2; i < n; i++) if (n % i == 0) return 0;
return 1;
}
int main()
{
int n, arr[101], count=0;
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
for (int i = 0; i < n; i++) if (check(arr[i]) == 1) count++;
printf("%d", count);
return 0;
}
코드 (C++)
#include <iostream>
using namespace std;
int check(int n)
{
if (n == 1) return 0;
for (int i = 2; i < n; i++)
{
if (n % i == 0) return 0;
}
return 1;
}
int main()
{
int n, arr[102], count=0;
cin >> n;
for (int i = 0; i < n; i++) cin >> arr[i];
for (int i = 0; i < n; i++) if (check(arr[i]) == 1) count++;
cout << count;
return 0;
}
코드설명
반복문을 돌면서 배열에 수를 입력받는다.
다시 반복문을 돌면서 check 함수의 반환값이 1일 경우에는 count를 1만큼 증가시킨다.
check 함수는 입력된 수가 소수이면 1을, 소수가 아니면 0을 반환하는 함수이다. 1일 경우에는 바로 0을 반환하고, 그렇지 않은 경우 2부터 n-1까지 일일이 값을 나눠보며 소수인지를 판별한다.
느낀 점
소수의 뜻을 생각해서 간단하게 푸는 문제였다. 다만 이 방식은 시간이 오래 걸리므로 다른 방식으로도 소수를 판별하는 방법을 생각해봐야 한다.
'PS (C, C++)' 카테고리의 다른 글
[백준/C & C++] 2309 일곱 난쟁이 (0) | 2022.08.26 |
---|---|
[백준/C & C++] 1929 소수 구하기 (0) | 2022.08.26 |
[백준/C & C++] 1037 약수 (0) | 2022.08.26 |
[백준/C & C++] 1330 두 수 비교하기 (0) | 2022.08.26 |
[백준/C & C++] 1712 손익분기점 (0) | 2022.08.26 |