728x90
문제 링크 : https://www.acmicpc.net/problem/1978
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 브론즈 3 문제 입니다.
문제명 : 소수 찾기
옛날에 풀고 블로그 작성까지 했었던 문제이지만, c++로 다시 풀어보았습니다.
내 코드
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
bool isPrime(int num)
{
if (num <= 1) return false;
for (int i = 2; i < num; i++)
{
if (num % i == 0)
return false;
}
return true;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
std::cout.tie(NULL);
int n, count = 0;
cin >> n;
vector<int> numbers(n);
for (int i = 0; i < n; i++)
{
cin >> numbers[i];
if (isPrime(numbers[i])) count++;
}
cout << count << endl;
}
문제 풀이 해석 내용
소수 확인 함수 정의
bool isPrime(int num)
{
if (num <= 1) return false;
for (int i = 2; i < num; i++)
{
if (num % i == 0)
return false;
}
return true;
}
isPrime 함수는 입력된 정수 num이 소수인지 확인합니다.
num이 1 이하인 경우, 소수가 아니므로 false를 반환합니다.
2부터 num - 1까지의 모든 정수로 num을 나누어, 나누어 떨어지는 경우가 있으면 소수가 아니므로 false를 반환합니다.
어떤 경우에도 나누어 떨어지지 않으면 소수이므로 true를 반환합니다.
메인 함수 정의
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
std::cout.tie(NULL);
프로그램의 시작점인 main 함수를 정의하고, 입출력을 더 빠르게 하기 위해 C++의 동기화를 비활성화합니다.
입력 처리 및 소수 개수 세기
int n, count = 0;
cin >> n;
vector<int> numbers(n);
for (int i = 0; i < n; i++)
{
cin >> numbers[i];
if (isPrime(numbers[i])) count++;
}
사용자로부터 정수 n을 입력받아, 이후에 입력할 숫자의 개수를 나타냅니다.
크기 n인 numbers 벡터를 생성합니다.
for 루프를 통해 n개의 정수를 입력받고, 각 숫자가 소수인지 확인하여 소수인 경우 count를 증가시킵니다.
결과 출력
cout << count << endl;
최종적으로 소수의 개수를 출력합니다.
실행 결과
728x90
'c++' 카테고리의 다른 글
백준 c++ 10103 문제 풀이 (0) | 2025.04.15 |
---|---|
백준 c++ 1157 문제 풀이 (0) | 2025.04.13 |
백준 c++ 1085 문제 풀이 (0) | 2025.04.11 |
백준 c++ 27433 문제 풀이 (0) | 2025.04.10 |
백준 c++ 10870 문제 풀이 (0) | 2025.04.09 |