:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
09/06/10 13:33
아무리 살펴봐도 문법상의 오류는 찾을길 없군요.
알고리즘상의 문제를 지적당하신거라면 사실 저한테 짜라고 해도 저렇게 짤것이기 때문에 그또한 문제점을 찾지는 못하였습니다. 다만, while 루프를 for 를써서 break; 구문으로 조금의(!) 성능향상이 있을을 꾀할수 있을것 같습니다. 그리고 여담으로 javascript 와 java 와는 별개의 것입니다.^^;
09/06/10 13:36
일단 1은 소수가 아닙니다. i는 2부터 시작하셔야 합니다.
i%j가 0이면 그것은 소수가 아니기 때문에 루프를 더 돌 필요도 없습니다. 검출즉시 break;를 걸어 탈출 하셔야 합니다. 물론 prime = false;다음에 말이죠. 문법상으론 이 정도면 될거 같고 JS 본질로 들어가겠습니다. .js로 써서 끌어쓰시던지 혹은 내부 html이나 jsp파일을 통해서 끌어오신다고 쳐도 가급적이면 저 logic부분은 function name() ... 식으로 처리하신 다음에 src=prime.js 라던지 <a href=javascript:prime()> 식으로 처리하시는 편이 나을것 같습니다.
09/06/10 16:23
다시 짜오라고 한건 정말 무식한 방법이기 때문입니다.
소수냐 아니냐만 구하면 되는건데 저렇게 다 계산할 필요가 없습니다. 2로 나눠서 나머지가 0 이 그냥 빠져나오면 됩니다. 그리고 두번째가 2로 나눈 다음은 4 이상의 2의 배수로 나눌 필요가 없다는 것입니다. 2로 나눠서 나머지가 0 아닌데 2의 배수로 나눠서 나머지가 0 이 되는 수는 없습니다. 그런걸 로직으로 다 제외하고 나눠질 수보다 작은 소수만으로로 나눠서 값을 구하셔야 합니다. 로직상으로는 틀린 부분은 없지만 효율성에서의 지적을 한 것 같네요.
|