728x90
코딩테스트 연습 - 소수 찾기
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상
programmers.co.kr
💡문제💡
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 return 하시오.
[제한 사항]
- n은 2 이상 1000000 이하의 자연수입니다.
코드 및 풀이👩🏻💻
수학에서 에라토스테네스의 체를 이용해 소수를 찾을 수 있다.
❌에라토스테네스의 체 알고리즘❌
1. 2부터 소수를 구하고자하는 구간의 모든 수를 나열한다.
2. 2는 소수이므로 오른쪽에 2를 쓴 후 자기 자신을 제외한 2의 배수를 모두 지운다.
3. 남아있는 수 가운데 가장 작은 수 3은 소수이므로 오른쪽에 3을 쓴다.
4. 자기 자신을 제외한 3의 배수를 모두 지운다.
5. 남아있는 수 가운데 가장 작은 수 5는 소수이므로 오른쪽에 5를 쓴다.
....
6. 위 과정을 반복하면 구하는 구간의 모든 소수를 구할 수 있다.
728x90
'Programmers Coding-Test' 카테고리의 다른 글
[Python] 연습문제 : 시저암호 (0) | 2021.04.07 |
---|---|
[Python] 연습문제 : 수박수박수박수박수박수? (0) | 2021.04.07 |
[Python] 연습문제 : 서울에서 김서방 찾기 (0) | 2021.04.06 |
[Python] 연습문제 : 문자열 다루기 기본 (0) | 2021.04.06 |
[Python] 연습문제 : 문자열 내림차순으로 배치하기 (0) | 2021.04.06 |