https://www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

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

www.acmicpc.net

 

오랜만에 소수 찾는 것을 프로그래밍 해보았다.

사실 2년전에 했던 코드 보단, 나아진 것 같다.

2년전에는 참, 이상하게 짰는데

 

2년뒤에 보면 더 이상할 수도 있겠다

 

 

어쨋든,

소수를 찾아 개수를 반환해야하는 것이다.

 

일단, 소수란 1과 자기 자신만으로 나눠떨어지는 1보다 큰 양의 정수이다.

 

 

 

그럼 입력을 받으면서 찾아보자, 라는 생각을 했다.

  1. 숫자를 입력받고
  2. 소수를 찾는다
    1. 숫자 입력받은 만큼 for문을 돌린다.
    2. 돌리는데 만약 나머지가 0이 된다 == 나눠떨어진다.
      1. count증가
      2. 만약 count가 2이상이 된다 -> for문 돌릴 필요가 없다, 어차피 소수가 아니기 때문
    3. count가 1이거나, 받은 값이 1이 아니라면 sum을 증가 시킨다.

코드보기↓

더보기

코드보기

#include <stdio.h>

int main() {
	int N;
	int num;
	int count = 0;
	int sum = 0;
	scanf("%d", &N);
	while (N--) {
		scanf("%d", &num);
		count = 0;
		for (int i = 2; i <= num; i++) {
			if (num % i == 0) {
				count++;
				if (count > 2)
					break;
			}
			
		}
		if (count == 1 && num != 1) {
			sum++;
		}
	}
	printf("%d", sum);
	return 0;
}

 

'Coding Test > Problem_solving' 카테고리의 다른 글

[백준] 9012_괄호  (0) 2021.02.18
[백준]9093_단어 뒤집기  (0) 2021.02.18
[백준] 4948_베르트랑 공준  (0) 2021.02.14
[백준]1929_소수 구하기  (0) 2021.02.13
[백준]2581_소수  (0) 2021.02.12

+ Recent posts