제로베이스 기초수학(1~4)

ningbbang·2023년 3월 26일
0

Zerobase DS13

목록 보기
5/48

1. 약수와 소수
1) 약수 : 어떤 수를 나누어떨어지게 하는 수
ex)
2의 약수 : 1, 2
8의 약수 : 1, 2, 4, 8
22의 약수 : 1, 2, 11, 22 ---

#약수

inputNumber = int(input('0보다 큰 정수 입력'))
divisor = []

for i in range(1, inputNumber+1):
    if inputNumber % i == 0:
        divisor.append(i)

print(divisor)

2) 소수 : 1과 자신만을 약수로 가지는 수 (단, 1은 제외)
ex) 2, 3, 5, 7, 11, 13, 17, 19 ---

#소수

inputNumber = int(input('0보다 큰 정수 입력'))
prime = []

for number in range(2, inputNumber + 1):
    flag = True
    for n in range(2, number): #입력된 수보다 1 작은 수에 약수가 있으면 거름
        if number % n == 0:
            flag = False
            break

    if (flag):
        #print('소수')
        prime.append(number)
    else:
        #print('합성수')

print(prime)

2. 소인수분해
1) 소인수 : 약수 중에서 소수인 숫자
ex)
20의 소인수 : 2, 5
36의 소인수 : 2, 3

#소인수
inputNumber = int(input('1보다 큰 정수'))

n = 2
while n <= inputNumber:
    if inputNumber % n == 0:
        print(f'소인수 : {n}')
        inputNumber /= n

    else:
        n += 1

2) 소인수분해 : 1보다 큰 정수를 소인수의 곱으로 나타내는 것
ex)
20의 소인수분해 : 2^2 5
36의 소인수분해 : 2^2
3^2
25의 소인수분해 : 5^2
41의 소인수분해 : 41

#소인수분해
inputNumber = int(input('1보다 큰 정수'))

factor = []
n = 2
while n <= inputNumber:
    if inputNumber % n == 0:
        print(f'소인수 : {n}')
        if factor.count(n) == 0:
            factor.append(n)
        elif factor.count(n) == 1:
            factor.remove(n)
        inputNumber /= n

    else:
        n += 1

print(f'facotrs : {factor}')
profile
HR Anaylist!

0개의 댓글