[C언어] 백준 1978 : 소수 찾기
생각의 흐름
n개를 입력받는다. 4개로 가정하면, 그 4개를 저장해야하는 공간이 필요하다. 배열을 만들어야겠구나.
이제 소수를 구해야한다. 1은 소수가 아니므로 예외처리를 해줘야겠다고 생각했다.
2부터 시작하는데, 구하는 방법은 간단하다. 예를 들어 15의 소수를 판별하자고 생각해보자.
- i = 2부터 15가 되기 전까지 증가시킨다. 단, 15 % i == 0이면 소수가 아니기에 break를 걸어준다. 3에서 break가 된다.
- 그러면 이번엔 19가 소수인지 판별해보자.
- i는 계속 증가해서 19까지 도달할 것이다. 그러면 count++로 소수의 개수를 하나 증가시켜주고, 다음 배열(다음 차례)로 이동해서 같은 논리로 진행한다.
내가 푼 코드
#include <stdio.h>
int main()
{
int n, i, j;
int arr[100];
int count = 0;
scanf("%d", &n);
i = 0;
while (i < n)
{
scanf("%d", &arr[i]);
i++;
}
i = 0;
while (i < n)
{
if (arr[i] >= 2)
{
j = 2;
while (j <= arr[i])
{
if (j == arr[i])
count++;
if (arr[i] % j == 0)
break;
j++;
}
i++;
}
else
i++;
}
printf("%d", count);
}
다른 사람 풀이
#include <stdio.h>
int main(void)
{
int n;
int num, count = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &num);
for (int j = 2; j <= num; j++)
{
if(num == j)
count++;
if (num % j == 0)
break;
}
}
printf("%d", count);
return 0;
}
출처: https://kiffblog.tistory.com/58
같은 방법이다. 배열로 안받고 그냥 바로 차례대로 처리해주어 조금 더 간결하다.
Author And Source
이 문제에 관하여([C언어] 백준 1978 : 소수 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimmainsain/C언어-백준-1978-소수-찾기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)