2023. 6. 29. 16:23ㆍ백준 문제와 소스 코드
문제:
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력:
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력:
주어진 수들 중 소수의 개수를 출력한다.
예제 입력1:

예제 출력1:

코드:
#include<iostream>
using namespace std;
int main()
{
int count,count2; //받을 정수의 개수를 저장할 변수와 소수가 아닌 것의 개수를 저장할 변수 선언
count2 = 0; //count2 값을 0으로 초기화
cin >> count; //받을 정수의 개수 초기화
int* a1 = new int[count]; //정수들을 받을 동적 배열 a1 생성생성
for (int i=0; i<count; i++) //i가 0부터 count-1까지 반복
{
cin >> a1[i]; //a1배열의 i자리에 초기화
if (a1[i] == 1) //안의 내용이 1이라면 count2 1증가
{
count2++;
continue; //for문 뒷내용 무시하고 다시 실행
}
for (int div = 2; div < a1[i]; div++) //div가 2부터 안의 내용물-1까지 반복
{
if (a1[i] % div == 0) //div가 안의 내용물을 나눠 나머지가 0이라면
{
count2++; //count2 1증가
break; //뒤는 더 나눠볼 필요가 없으므로 바로 위의 for문 탈출
}
}
}
count2 = count - count2; //count2는 소수가 아닌 것의 개수이므로 전체 개수에서 빼줘야함
cout << count2; //count2 출력
return 0;
}
설명:
주석 참고
'백준 문제와 소스 코드' 카테고리의 다른 글
| Week 1 (수학) - 문제 17087번 (숨바꼭질 6 ) (0) | 2023.07.01 |
|---|---|
| Week 1 (수학) - 문제 11653번 (소인수분해) (0) | 2023.06.30 |
| Week 1 (수학) - 문제 2609번 (최대공약수와 최소공배수) (0) | 2023.06.30 |
| Week 1 (수학) - 문제 1929번 (소수 구하기) - 미완 (0) | 2023.06.29 |
| Week 1 (수학) - 문제 8393번 (합) (0) | 2023.06.29 |