[기초 수학] (1)

greta·2023년 5월 19일
0

1. 약수와 소수

  • 약수: 어떤 수를 나누어떨어지게 하는 수
inputNumber = int(input('0보다 큰 정수 입력: '))
for number in range(1, inputNumber+1):
    if inputNumber % number == 0:
        print('{}의 악수: {}'.format(inputNumber, number))
  • 소수: 1과 자신만을 약수로 가지는 수(단, 1 은 제외)
inputNumber = int(input('0보다 큰 정수 입력: '))

for number in range(2, inputNumber+1):
    flag = True

    for n in range(2, number):
        if number % n == 0:
            flag = False
            break

    if flag:
        print('{}: 소수!!'.format(number))
    else:
        print('{}: 합성수!!'.format(number))

2. 소인수, 소인수분해

  • 소인수: 약수(인수) 중에서 소수인 숫자를 소인수라고 한다.
inputNumber = int(input('1보다 큰 정수 입력: '))

n = 2
while n <= inputNumber:
    if inputNumber % n == 0:
        print('소인수: {}'.format(n))
        inputNumber /= n
    else:
        n += 1
  • 소인수분해
    : 1보다 큰 정수를 소인수의 곱으로 나타낸 것을 소인수분해라고 한다.


: 소인수분해를 이용해서 약수를 정확하고 쉽게 구할 수 있다.

3. 최대공약수

  • 공약수: 두 개 이상의 수에서 공통된 약수를 공약수라고 한다.
  • 최대공약수: 공약수 중 가장 큰 수를 최대공약수라고 한다.

    소인수분해를 이용하면 최대공약수 및 공약수를 구할 수 있다.
    좀 더 편리하게 최대공약수 구하는 방법: 소수로 나눗셈 하자!
num1 = int(input('1보다 큰 정수 입력: '))
num2 = int(input('1보다 큰 정수 입력: '))
maxNum = 0

for i in range(1, (num1 + 1)):
    if num1 % i == 0 and num2 % i == 0:
        print('공약수: {}'.format(i))
        maxNum = i
        
print('최대공약수: {}'.format(maxNum))

4. 최소공배수

  • 공배수: 두 개 이상의 수에서 공통된 배수를 공배수라고 한다.
  • 최소공배수: 공배수 중 가장 작은 수를 최소공배수라고 한다.

    소인수분해를 이용하면 최소공배수 및 공배수를 구할 수 있다.
    좀 더 편리하게 최소공배수 구하는 방법: 소수로 나눗셈 하자!
num1 = int(input('1보다 큰 정수 입력: '))
num2 = int(input('1보다 큰 정수 입력: '))
maxNum = 0

for i in range(1, (num1 + 1)):
    if num1 % i == 0 and num2 % i == 0:
        print('공약수: {}'.format(i))
        maxNum = i

print('최대공약수: {}'.format(maxNum))

minNum = (num1 * num2) // maxNum
print('최소공배수: {}'.format(minNum))

5. 진법

  • 진법: 특정 숫자 몇 개를 사용하여 수를 표시하는 방법이다.

dNum = 30

print('2진수: {}'.format(bin(dNum)))
print('8진수: {}'.format(oct(dNum)))
print('16진수: {}'.format(hex(dNum)))


print('2진수(0b11110)->10진수({})'.format(int('0b11110', 2)))
print('8진수(0o36)->10진수({})'.format(int('0o36', 8)))
print('16진수(0x1e)->10진수({})'.format(int('0x1e', 16)))

0개의 댓글