#include <Turboc.h>
#define RANGE 100
void main()
{
BOOL Prime[RANGE+1];
int i,j;
// 일단 전부 소수로 가정한다.
for (i=0;i<=RANGE;i++) Prime[i]=TRUE;
// 2부터 배수를 찾아 지운다.
for (i=2;i<=RANGE;i++) {
if (Prime[i]) {
for (j=i*2;j<=RANGE;j+=i) {
Prime[j]=FALSE;
}
}
}
// 남은 소수 출력
puts("1~100까지의 소수 목록");
for (i=2;i<=RANGE;i++) {
if (Prime[i]) {
printf("%d ",i);
}
}
}
여기서 BOOL Prime[RANGE+1]; 이 왜 0과 1은 대상에서 제외되냐?
설명점 해주라
책에는 이렇게 쓰여있음
BOOL 타입의 Prime 배열을 크기 RANGE+1로 선언하여 RANGE까지의 수에 대응시키는데 0과 1은 대상에서 제외된다
0은 자연수가 아니고 1은 소수가 아니잖어
그니까 RANGE+1 이 왜 그런 뜻인데
그럼 +2 하면 2까지 걸러짐?
그거랑은 관련없고 range가 100이면 +1은 101일거아냐? 배열은 인덱스 0부터 시작하니 100까지 할당하려면 101개만큼 줘야지
그러면 첨부터 #define RANGE 101 로 주고 BOOL Prime[RANGE]로 해도 대냐
ㅇ
포문을 좀 수정을 해줘야겟디 그럼
아하 포문에 RANGE 를 편하게 100으로 잡을려고 하고 +1은 배열은 100까지 해야하는데 첫번째[0] 은 필요 없으니 +1 하는 거구나
잘 이해 한거지?
결장자 해외레어자료 브랜드신상 손흥민뉴스 스포츠네이버카페 *바이스포츠*