Algorithm/프로그래머스

[프로그래머스] Lv 1. 소수 찾기(Python3)

RIEN😚 2022. 5. 12. 11:49
728x90
반응형
 

코딩테스트 연습 - 소수 찾기

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상

programmers.co.kr

 

문제

1부터 입력 받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 봅시다.

 

풀이

해당 숫자가 소수인지 판단하는 알고리즘 중 가장 빠른 알고리즘은 해당 숫자의 √N 까지만 확인하는 방법입니다.

import kotlin.math.*

fun isPrime(num: Int): Boolean {
	for (i in 2 .. sqrt(n)) {
    	if (num % i == 0) return false
    }
    return true
}

 

입력 값이 크지 않으니, 2부터 n까지 반복문을 수행하여 해당 숫자가 소수인지 판단하는 방식으로 풀어도 시간 내에 풀 수 있습니다.😄

 

코드

import math

def solution(n):
    answer = 0
    for i in range(2,n+1):
        if isPrime(i):
            answer += 1
    return answer

def isPrime(n):
    sqrt = int(math.sqrt(n))
    for i in range(2,sqrt+1):
        if n % i == 0:
            return False
    return True
반응형