본문 바로가기
백준 C언어/silver

백준 1978 소수찾기 C언어_230113

by boyo-ee 2023. 1. 13.

백준 소수 찾기 문제다.

예전에 C를 배운 지 약 2주 만에 친 코딩시험에서 소수의 개수였나... 그런 문제를 test case를 몇 개 불만족하여 틀린 경험이 있어 소수문제는 뭔가 손이 가지 않는다.

 

그래도 한번 풀어보자.

 

소수(prime number)는 1과 자신만을 약수로 가지는 수이다.

예를 들어서 2, 3, 5, 7, 11과 같은 수이다.

 

그래서 1을 제외하고 2부터 자기 자신까지 나누어보았을 때 나누어 떨어지는 경우가 1개밖에 발생하지 않는다는 개념으로 코드를 구현하였다.

여기까지 설명을 보고 아래 코드를 본다면 이 코드를 이해하기 쉬울 것이다.

#include <stdio.h>
#include <string.h>
int prime(int a){
	int cnt=0;
	for(int i=2;i<=a;i++){
		if(a%i==0) cnt++;
	}
	if(cnt==1) return 1;
	else return 0;
}
int main(){
	int n;
	int a,sum=0;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&a);
		sum+=prime(a); //함수 리턴값을 받아와 sum변수에 더해주었다.
	}
	printf("%d",sum);
	return 0;
}

이 문제는 실 버라기엔 간단해서 브론즈 정도로 볼 수 있지 않을까?

댓글