백준 소수 찾기 문제다.
예전에 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;
}
이 문제는 실 버라기엔 간단해서 브론즈 정도로 볼 수 있지 않을까?
'백준 C언어 > silver' 카테고리의 다른 글
백준 2822 점수계산 C언어_230118 (0) | 2023.01.18 |
---|---|
백준 2578 빙고 C언어_230117 (0) | 2023.01.18 |
백준 5555 반지 C언어_230108 (0) | 2023.01.13 |
백준 2422 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 C언어_230110 (0) | 2023.01.13 |
백준 1065 한수 C언어_230113 (2) | 2023.01.13 |
댓글