728x90
소수 찾기
코딩테스트 연습 - 소수 찾기
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상
programmers.co.kr
문제 설명
에라토스테네스의 체를 이용하여 소수를 찾는 문제
문제 풀이
*소스코드 : C++ *
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
vector<bool> tmp(n+1, true);
for (int i=2; i<n+1; i++) {
if (tmp[i] == true) {
for (int j=2; i*j<n+1; j++) tmp[i*j] = false;
answer++;
}
}
return answer;
}
소스코드 : Python
def solution(n):
answer = 0
check = [False] * (n+1)
check[0] = check[1] = True
for i in range(2,n+1):
if check[i] == False:
for j in range(i*i, n+1, i):
check[j] = True
answer+=1
return answer
728x90
300x250
728x90
소수 찾기
코딩테스트 연습 - 소수 찾기
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상
programmers.co.kr
문제 설명
에라토스테네스의 체를 이용하여 소수를 찾는 문제
문제 풀이
*소스코드 : C++ *
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
vector<bool> tmp(n+1, true);
for (int i=2; i<n+1; i++) {
if (tmp[i] == true) {
for (int j=2; i*j<n+1; j++) tmp[i*j] = false;
answer++;
}
}
return answer;
}
소스코드 : Python
def solution(n):
answer = 0
check = [False] * (n+1)
check[0] = check[1] = True
for i in range(2,n+1):
if check[i] == False:
for j in range(i*i, n+1, i):
check[j] = True
answer+=1
return answer
728x90
300x250