1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

코드1

#include <iostream>

int main()
{
	int count = 0;
	int n, num;
	int distinction = 0;
	std::cin >> n;

	for (int i = 0; i < n; i++) {
		std::cin >> num;
		if (num != 1) {
			for (int i = 1; i < num + 1; i++) {
				if (num % i == 0) {
					distinction += 1;
					if (distinction > 2) break;
				}
			}
		}
		if (distinction == 2) ++count;
		distinction = 0;
	}

	std::cout << count;

	return 0;
}

distinction 변수가 반복문이 끝났을 때 2이면 1과 숫자 본인자신으로만 나눠진 경우라 할 수 있습니다. 그래서 이 경우에 count를 증가시켜서 소수 개수를 구하였습니다.

'역시 내 문제해결 알고리즘은 잘못됐다' 카테고리의 다른 글

백준 10989번 수 정렬하기3 [C/C++]  (0) 2021.02.21
백준 2908번 C/C++  (0) 2021.01.03
백준 2577번 C/C++  (0) 2021.01.03
백준 1157번 C/C++  (0) 2020.12.31
백준 1546번 C/C++  (0) 2020.12.30