함께하는 데이터 분석

[기타 알고리즘] 소수 판별, n진수 변환, 약수의 개수 본문

코딩 테스트

[기타 알고리즘] 소수 판별, n진수 변환, 약수의 개수

JEONGHEON 2023. 7. 21. 14:19

소수 판별(에라토스테네스의 체)

import math

n = 1000

array = [True for i in range(n + 1)]
array[1] = 0

for i in range(1, int(math.sqrt(n)) + 1) :
    if array[i] == True :
        j = 2
        while i * j <= n :
            array[i * j] = False
            j += 1
            
for i in range(1, n + 1) :
    if array[i] == True :
        print(i, end = ' ')

 

10진수를 n진수로 변환

def rev(num, n) : 
    rev_base = ''
    
    while num > 0 :
        num, mod = divmod(num, n)
        rev_base += str(mod)
    
    return rev_base[::-1]

 

1에서 n까지 각 수의 약수의 개수

import math
n = 15

arr = []
for i in range(1, n + 1) :
    count = 0
    for j in range(1, int(math.sqrt(i)) + 1) :
        if j * j == i :
            count += 1
        elif i % j == 0 :
            count += 2
    arr.append(count)
    
print(arr)