[C언어] 백준 4948 : 베르트랑 공준
생각의 흐름
-
소수 구하는건 이전에 다 해놨었고 입력값이 a면 2a만큼 범위를 지정하면 될 것 같다.
-
0으로 종료하는건 간단하니 마지막에 넣어주자
-
갯수를 구하는거니까 count를 사용해주자.
-
주의해야할건 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 저번에 쓴거 고대로 가져왔다. 유형을 익혀가니까 문제가 점점 보인다.
Author And Source
이 문제에 관하여([C언어] 백준 4948 : 베르트랑 공준), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimmainsain/C언어-백준-4948-베르트랑-공준저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)