소수 판별

2022. 10. 6. 13:24
def isPrime(num):
	for i in range(2, int(sqrt(num)) + 1):
		if num % i == 0:
			return False
	return True

출력값이 False이면 소수가 아닌 수.

시간복잡도는 O(루트N).

원리는 링크 참조

 

def sieve_of_eratosthenes(num):
    nums = [i for i in range(0, num + 1)]

    for i in range(2, num + 1):
        if nums[i] == 0:
            continue
        for j in range(2 * i, num + 1, i):
            nums[j] = 0
    
    return [x for x in nums if x != 0 if x != 1]

1부터 num까지의 소수를 알아내는 함수

에라스토테라스의 체 알고리즘

'코딩테스트 > 메모' 카테고리의 다른 글

소인수분해  (0) 2022.10.19
피보나치 수  (0) 2022.10.13
두 수의 최대공약수와 최소공배수구하기  (0) 2022.10.06
약수 구하기  (0) 2022.10.06
유클리드 거리와 맨해튼 거리  (0) 2022.10.06

BELATED ARTICLES

more