[C언어] 백준 4948 : 베르트랑 공준

5350 단어 C백준C

생각의 흐름

  1. 소수 구하는건 이전에 다 해놨었고 입력값이 a면 2a만큼 범위를 지정하면 될 것 같다.

  2. 0으로 종료하는건 간단하니 마지막에 넣어주자

  3. 갯수를 구하는거니까 count를 사용해주자.

  4. 주의해야할건 n보다 크고 2n보다 작다는거다. <=가 아니고 < 이거다. 끝

내가 푼 코드

#include <stdio.h>

int ft_is_prime(int nb)
{
	int i;
	i = 2;
	if (nb < 2)
		return (0);
	while (i <= (nb / i))
	{
		if (nb % i == 0)
			return (0);
		i++;
	}
	return (1);
}

int main()
{
	int a;
	while (1) // 무한루프로 a == 0일때까지 돌아감
	{
		scanf("%d", &a);
		int count = 0;
		if (a == 0) // 종료조건
			return 0;
		int b = a + a; // 범위설정
		while (a < b)
		{
			a++;
			if (ft_is_prime(a) == 1)
				count++; // print대신 소수면 count++로 개수세준다.
		}
		printf("%d\n", count);
	}
}

isprime 저번에 쓴거 고대로 가져왔다. 유형을 익혀가니까 문제가 점점 보인다.

좋은 웹페이지 즐겨찾기