C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51212] Re:소수 구하는 프로그램인데 쩝..
장성호 [nasilso] 1791 읽음    2007-11-12 11:37
참고하세요

참고1.
소수는 2를 제외하고 짝수일수는 절대 없습니다.

그러므로 for문으로 숫자를 증가하면서 체크할때 홀수만 하면 빨라지겠죠
(2인경우는 예외로 처리하고)

for( int i=3;i<1000;i+=2)
{
    ...
}

참고2.
소수는 소수로도 나누어지지 않습니다.

만약 10번째 소수 29 을 찾았다고 하면
그다음 소수 n을 찾을때 3부터 모든 홀수로 나누어 보지말고
이미 찾은 소수로 나누어 보고 그래도 나누어 지지 않으면
29 에서  (n-2) 까지 홀수로 나누어 보면 되겠죠

다시 말해 한번 찾은 소수는 기억하고 있다가 
그 다음 소수를 찾을때 활용하묜 더욱 빨리 찾을수 있다..
뭐 그런얘기입니다.

그런데 1부터 1000까지 소수가 168개나 있네요
방금 테스트 코딩해 봤는데.. 생각보다 상당히 많네요

그럼..



인관 님이 쓰신 글 :
: 흑..저는 소수 구하는 프로그램을 짤수 있는데 이건 또..뭡니까 아무튼 도와주세요,
: 문제-
: 1000보다 작은 범위의 소수를 찾아 출력하되
: 특히 n번째 소수를 찾아주는 프로그램을 작성하시오.
:
: [입력]
: 입력은 키보드 또는 INPUT.TXT 파일을 이용하여
: 몇 번째 소수를 찾을 것인지 n을 입력 받는다.
:
: [출력]
: n번째까지의 소수를 모두 출력한 다음,
: n번째 소수가 얼마인지 출력한다.
: (화면 또는 OUTPUT.TXT 파일로 출력)
:
: (입력 예)
: 10
:
: (출력 예)
: 2 3 5 7 11 13 17 19 23 29
: 10번째 소수는 29입니다.

+ -

관련 글 리스트
51203 소수 구하는 프로그램인데 쩝.. 인관 1561 2007/11/11
51212     Re:소수 구하는 프로그램인데 쩝.. 장성호 1791 2007/11/12
51208     Re:소수 구하는 프로그램인데 쩝.. 쩡이 1386 2007/11/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.