Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- LAN의 분류
- 괄호 검사 프로그램
- 주기억장치
- 값/참조/주소에 의한 전달
- 원형 연결 구조 연결된 큐
- l-value참조자
- 네트워크 결합
- 범위 기반 for문
- C언어 계산기 프로그램
- 문제해결 단계
- const화
- IPv4 주소체계
- 유형 변환
- const l-value참조자
- 입출력 관리자
- 회전 및 자리 이동 연산
- getline()함수
- string유형
- 백준 파이썬
- C언어 덱
- 알고리즘 조건
- C언어 스택 연산
- 프로그래머스 푸드 파이트 대회
- c언어 괄호검사
- auto 키워드
- r-value참조자
- 운영체제 기능
- 논리 연산
- 문자형 배열
- 프로그래머스 배열만들기4
Archives
- Today
- Total
chyam
[python]- 에라토스테네스의 체 (소수 찾기) 본문
에라토스테네스의 체
에라토스테네스의 체를 통해 소수를 찾을 수 있다.
중첩 For문을 사용하지 않아도 되어서 더 빠르다.
예를 들어 1부터 100까지의 숫자중 소수를 찾는다면
먼저 1을 제외한다.
그런 후 2를 제외한 2의 배수들을 제거한다. 2는 짝수 중의 유일한 소수이기 때문이다.
3과 5 7도 이와 같은 방식으로 지운다.
이것들을 아래코드로 표현하자면,
이 문제의 범위가 1,000,000이라 MAX값을 이것으로 놔둔다.prime이라는 새로운 배열을 만들어 MAX번째 인덱스까지 값을 True로 만든다.prime의 1번인덱스는 소수가 아니라 False로 미리 변환해준다.
for문의 범위를 2부터 MAX의 제곱근을 정수형으로 변환한데까지 해준다.그런 후 만약 prime[i]값이 True라면 j를 2로 두고 ,i*j가 MAX보다 같거나 작은 동안 while문을 반복해준다.이때 i*j의 값들은 반드시 소수가 아니기 때문에 이 값들의 인덱스의 값을 False로 변환한다.그런 후 j를 1씩 늘려간다. for문이 끝나면 prime 배열의 값들은 배수인 값들은 False가 된다. True인 값들만 출력하게 되면 범위 내의 소수의 값들을 구할 수 있다.
아래코드는 소수의 개수라서 아래 for문을 추가해주었다.
'python' 카테고리의 다른 글
[python]- set 자료형 (0) | 2024.03.18 |
---|---|
[python]- isdigit() 숫자 판별 함수 (0) | 2024.03.12 |
[python]- lambda 함수 (0) | 2024.03.09 |