자료구조&알고리즘

[알고리즘] 소수찾기 - 에라토스테네스의 체(C++ / Python)

2023. 3. 18. 05:02
목차
  1. 소수 구하기

소수를 구할 때 시간효율적으로 풀 수 있도록 주로 이 방법을 사용한다고 함.

 

소수 구하기

2 ~ N 까지 에라토스테네스 채를 통해 소수를 구하는 방법은 다음과 같다.

 

  1. 2부터 시작해서 N까지 진행
  2. 가장 작은 수를 선택
  3. 그 작은 수를 소수라고 가정하고 작은 수부터 N까지 그 작은 수의 배수를 모두 제거
n=1000
a = [False,False] + [True]*(n-1)
primes=[]

for i in range(2,n+1):
  if a[i]:
    primes.append(i)
    for j in range(2*i, n+1, i):
        a[j] = False
print(primes)

 

#include<stdio.h>
#include<cmath>
using namespace std;


int main(){
	int n = 1000;
	int check[1001] = { false };

	check[0] = check[1] = true;
	for (int i = 2; i < sqrt(1000); i++){
		if (check[i] == false){
			for (int j = i + i; j <= 1000; j += i){
				check[j] = true;
			}
		}
	}

	for (int i = 1; i <= n; i++){
		if (!check[i]) printf("%d ", i);
	}
	


	return 0;
}

 

[Reference]

   [1] Python

   [2] c++

저작자표시 (새창열림)

'자료구조&알고리즘' 카테고리의 다른 글

[230224] 프로그래머스 C++ 숫자 비교하기  (0) 2023.02.24
[230223] 프로그래머스 C++ 두수의 나눗셈  (0) 2023.02.24
[실전 알고리즘 강좌 - 나동빈] 2강 - 정렬 알고리즘 (C++ with Python)  (0) 2023.02.18
  1. 소수 구하기
'자료구조&알고리즘' 카테고리의 다른 글
  • [230224] 프로그래머스 C++ 숫자 비교하기
  • [230223] 프로그래머스 C++ 두수의 나눗셈
  • [실전 알고리즘 강좌 - 나동빈] 2강 - 정렬 알고리즘 (C++ with Python)
capaca
capaca
capaca
CaPa
capaca
  • 분류 전체보기
    • 개념정리
    • 논문, 강의
    • 수강
      • 강의
      • Hugging Face
    • Code
      • Python
      • Python-Gym, Stable-baseline..
      • C++
      • CMake
    • 자료구조&알고리즘
      • 프로그래머스
      • 백준알고리즘
      • CodeUp
      • 이코테
    • Development
    • ERROR 삽질
    • ETC
      • Navigation, Collision avoid..
      • Dataset
    • 기타참고
      • TODO
      • 논문 작성 참고

블로그 메뉴

  • 홈
  • TOOL
  • Github
  • Role

공지사항

hELLO · Designed By 정상우.
글쓰기 / 관리자
capaca
[알고리즘] 소수찾기 - 에라토스테네스의 체(C++ / Python)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.