간단하고 쉬운 프로그래밍 문제 2 : 소수 구하기

저번 문제는 삼각형보다 쉬워서인지 금방금방 푸시더군요. 난이도를 좀 더 올릴까, 아니면 그냥 이대로 낼까 고민 중입니다. ㅎㅎ

문제
2부터 입력 받은 수 사이의 소수를 구하는 프로그램을 작성하세요
여기서 소수는 1과 자기 자신 이외에 나눠지지 않는 수를 말하는 것입니다.

1~100 사이의 소수
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

조건
초급 : 어떻게든 작성하세요 -_-;;
중급 : 속도를 좀 더 올리기 위해 소수를 배열에 넣어 처리를 하고 단순한 방법보다 더욱 빠른 속도로 작동하게끔 작성하세요.(여러 방법이 있음)
고급 : 배열대신 자료구조에 나오는 Linked list를 사용하고, unsigned long형이 지원되는 숫자까지(32bit C, C++은 32bit까지, 64bit C, C++과 C#, Java는 64bit까지) 처리되도록 하며 프로그램에 주는 옵션에 따라 실행 결과를 옵션에 지정된 파일로 출력하게끔 작성하세요. 물론 중급 조건 모두를 만족해야 합니다.

순식간에 중학교 수준으로 난이도 상승! 하지만 잘 하실 수 있죠?
이번에도 역시 소스를 올리셔도 좋습니다. 다만~
비공개 처리 해 주세요 -_-+

Trackback 1 Comment 4
  1. Favicon of http://dworld.tistory.com/ BlogIcon Deios 2007.03.15 18:13 address edit & del reply

    흠흠... 저한테는 대학교 과정이군요 ^.^;;;
    전에도 말씀드렸다시피 프로그래밍이나 알고리즘이나...
    전혀 배운적이 없어서... 하하핫...
    20일날 외박나가는데... 외박 나가면 수학책(정수론)좀 찾아보고 풀어봐야 겠네요^^;;;
    근데 중급 조건에... 소수를 배열로 저장하라는 조건이 있는데...
    구해진 소수를 배열로 저장해서 비교할 수와 나누는건가요???
    하하핫...
    저한테는 너무 어렵네요 ^.^;;;

    • Favicon of http://www.myhyuny.net BlogIcon 화현 2007.03.15 19:52 address edit & del

      제가 중학교 수준이라고 한 이유는 단순합니다.
      중학교 교과서에 소수가 나오거든요 -_-;;;
      그리고 저 조건을 보고 그것을 유출해 내다니. 센스 있으시군요! 조금만 하시면 금방 실력이 늘으시겠습니다^^

  2. Favicon of http://dworld.tistory.com BlogIcon Deios 2007.03.16 19:05 address edit & del reply

    그렇군요...
    그럼 중학교 수준 = 초급 이겠네요 ^.^;;;
    초급이야 뭐... 그냥 무한정 돌리면 되니깐...
    고급의 지정된 파일로 출력이라 함은 어떤걸 말씀하시는건가요???
    하하핫... ㅠ.ㅠ;;;

    다행히 부대안에 정수론 책이 있어서 찾아 봤는데...
    생각보다 힘드네요... 일단 세가지 정의를 이용해 볼까 합니다...
    N보다 작은 소수의 개수 구하는 정의랑...
    N이 소수인지 알아보려면 root(n)보다 작거나 같은 소수로 나눠보면 된다는 정의랑...
    한가지는 잘 기억이 나지 않는데...
    한 정의의 역이 거의항상 성립한다는 점을 이용한걸로 아는데...

    하핫... 앞으로도 많은 도움 주세요 ^.^;;;

    • Favicon of http://www.myhyuny.net BlogIcon 화현 2007.03.17 00:00 address edit & del

      프로그램을 실행시킬때 인수로 파일명을 주면 그 파일명을 가지는 파일을 만들고 거기에 자료를 넣는것입니다. -_-+

      그리고 제가 사용한 방법이 3가지 정의중 하나인것 같네요 ^^;