본문 바로가기
백준

백준 1978번[c언어] : 소수 찾기

by 핫동경 2022. 3. 20.
반응형

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

 

1978번: 소수 찾기

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

www.acmicpc.net


 

○ 소수는 약수가 1과 자기자신만 가지는 숫자를 말한다.

 

○ 몇번 반복할것인지 ntest입력

 

○ 소수함수 작성   int sosu(int n)

 

○ 만약 매개변수 n이 1보다 작거나 같으면 그 숫자는 소수가 아니다

 

○ 2부터 소수/2 까지 반복하며 만약 (매개변수n)%i 가 0이라면 그 수는 약수가 되는 것이다 

#include<stdio.h>
int sosu(int n) {
	if (n <= 1) //1은 소수가 아니므로
		return 0;
	for (int i = 2; i <= n / 2; i++) {   //2부터 소수/2 까지 반복하며 나누어떨어지는지 확인
		if (n % i == 0) //0이되면 i는 n의 약수가 되는 것이다
			return 0;
	}
	return 1;  //반복문이 끝낫으므로 이 숫자는 소수이다 return 1
}

int main() {
	int ntest;
	int n;
	scanf("%d", &ntest);
	int score = 0;
	for (int i = 0; i < ntest; i++) {
		scanf("%d", & n);
		if (sosu(n)==1)  //만약 소수함수의 리턴값이 1이라면 score +1
			score++;
	}
	printf("%d", score);
}

 

반응형

댓글