(알고리즘 설명)
안녕하세요.
이 알고리즘은 2, 3, 5, 7, 11, 13, 17 .... 의 소수를 배열에 저장하는 알고리즘입니다.
초기값으로 2와 3은 이미 배열에 저장한 상태로 진행을 합니다.
결국 반복문을 통해 5, 7, 11, 13, 17 ... 의 소수를 배열에 저장해야 합니다.
바깥쪽 P 반복문은 소수가 될 대상들을 순차적으로 검사하기 위해 값을 증가하는 반복문인데, 이미 2와 3은 저장해 두었으니 그 다음 소수인 5부터 시작을 하는 것이고, 2를 제외한 짝수는 소수가 아니므로 대상을 홀수만 지정하기 위해 2씩 증가한 값을 대상으로 합니다.
그러면 대상은 5, 7, 9, 11, 13, 15, 17, 19, ... 와 같이 홀수만 되는 것이죠. 반복문 자체에서 홀수만을 대상으로 하도록 했으므로 굳이 2로 나눠 나머지가 0인 것은 소수 대상에서 제외할 필요가 없는 것이죠.
그럼 반복문 P에 의해 산출된 위 값들 중에서 소수를 판별하기 위해 나눠봐야 하는데, 이미 소수로 판면된 숫자들로 나눠서 나머지가 0이면 그것은 소수가 아닌 것이죠.
그래서 안쪽 Q 반복문을 2부터 지정하여 이미 저장된 배열의 값을 이용하여 나눠보는 것입니다.
Q(2)는 3이죠. 그럼 3으로 소수 대상을 나눠 0이 되면 그 값은 소수가 아닙니다.
A(3)는 5죠. 그럼 5로 소수 대상을 나눠 0이 되면 그 값은 소수가 아닙니다.
이와 같이 진행하여 나머지 소수를 판별한 후 그 값을 배열에 저장합니다.
오늘도 즐거운 하루 되세요.
"-
*2014-04-01 09:29:02
안녕하세요.
이 알고리즘은 2, 3, 5, 7, 11, 13, 17 .... 의 소수를 배열에 저장하는 알고리즘입니다.
초기값으로 2와 3은 이미 배열에 저장한 상태로 진행을 합니다.
결국 반복문을 통해 5, 7, 11, 13, 17 ... 의 소수를 배열에 저장해야 합니다.
바깥쪽 P 반복문은 소수가 될 대상들을 순차적으로 검사하기 위해 값을 증가하는 반복문인데, 이미 2와 3은 저장해 두었으니 그 다음 소수인 5부터 시작을 하는 것이고, 2를 제외한 짝수는 소수가 아니므로 대상을 홀수만 지정하기 위해 2씩 증가한 값을 대상으로 합니다.
그러면 대상은 5, 7, 9, 11, 13, 15, 17, 19, ... 와 같이 홀수만 되는 것이죠. 반복문 자체에서 홀수만을 대상으로 하도록 했으므로 굳이 2로 나눠 나머지가 0인 것은 소수 대상에서 제외할 필요가 없는 것이죠.
그럼 반복문 P에 의해 산출된 위 값들 중에서 소수를 판별하기 위해 나눠봐야 하는데, 이미 소수로 판면된 숫자들로 나눠서 나머지가 0이면 그것은 소수가 아닌 것이죠.
그래서 안쪽 Q 반복문을 2부터 지정하여 이미 저장된 배열의 값을 이용하여 나눠보는 것입니다.
Q(2)는 3이죠. 그럼 3으로 소수 대상을 나눠 0이 되면 그 값은 소수가 아닙니다.
A(3)는 5죠. 그럼 5로 소수 대상을 나눠 0이 되면 그 값은 소수가 아닙니다.
이와 같이 진행하여 나머지 소수를 판별한 후 그 값을 배열에 저장합니다.
오늘도 즐거운 하루 되세요.
"