ex. 사용자가 입력한 숫자의 약수를 출력
inputNumber = int(input('0보다 큰 정수 입력 : '))
for i in range(1, inputNumber + 1):
if inputNumber % i == 0:
print(f'{inputNumber}의 약수 : {i}')
2. 소수 : 1과 자신만을 약수로 가지는 수 (단, 1은 제외)
ex. 사용자가 입력한 숫자까지의 소수를 출력
inputNumber = int(input('1보다 큰 정수 입력 : '))
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(f'{number} : 소수!!')
else:
print(f'{number} : 합성수!!')
3. 소인수 : 약수(인수) 중에서 소수인 숫자를 소인수라고 한다.
소인수분해 : 1보다 큰 정수를 소인수의 곱으로 나타낸 것을 소인수분해라고 한다.
ex. 사용자가 입력한 수를 소인수분해
inputNumber = int(input('1보다 큰 정수 입력 : '))
n = 2
while n <= inputNumber:
if inputNumber % n == 0:
print(f'소인수 : {n}')
inputNumber /= n
else:
n += 1
4. 공약수 : 두 개 이상의 수에서 공통된 약수를 공약수라고 한다.
최대공약수 : 공약수 중 가장 큰 수를 최대공약수라고 한다.
ex. 사용자가 두 개의 수를 입력하면 공약수와 최대공약수를 출력하는 코드 작성
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(f'공약수 : {i}')
maxNum = i
print(f'최대 공약수 : {maxNum}')
5. 공배수 : 두 개 이상의 수에서 공통된 배수를 공배수라고 한다.
최소공배수 : 공배수 중 가장 작은 수를 최소공배수라고 한다.
ex. 두개의 수를 입력하면 최소공배수를 출력하는 코드
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(f'공약수 : {i}')
maxNum = i
print(f'최대공약수 : {maxNum}')
minNum = (num1 * num2) // maxNum
print(f'최소공배수 : {minNum}')
6. 진법 : 특정 숫자 몇 개를 사용하여 수를 표시하는 방법
진수 변환 방법
dNum = 30
# 10진수 -> X진수 변환
print('2진수 : {}'.format(bin(dNum)))
print('8진수 : {}'.format(oct(dNum)))
print('16진수 : {}'.format(hex(dNum)))
print('2진수 : {}'.format(type(bin(dNum))))
print('8진수 : {}'.format(type(oct(dNum))))
print('16진수 : {}'.format(type(hex(dNum))))
print('2진수 : {}'.format(format(dNum, '#b')))
print('8진수 : {}'.format(format(dNum, '#o')))
print('16진수 : {}'.format(format(dNum, '#x')))
print('2진수 : {}'.format(format(dNum, 'b')))
print('8진수 : {}'.format(format(dNum, 'o')))
print('16진수 : {}'.format(format(dNum, 'x')))
print('{0:#b}, {0:#o}, {0:#x}'.format(dNum))
# X진수 -> 10진수 변환
print('2진수(0b11110) -> 10진수({})'.format(int('0b11110', 2)))
print('8진수(0o36) -> 10진수({})'.format(int('0o36', 8)))
print('2진수(0x1e) -> 10진수({})'.format(int('0x1e', 16)))
# X진수 -> X진수 변환
print('8진수(0o36) -> 2진수({})'.format(bin(0o36)))
print('8진수(0o36) -> 10진수({})'.format(int(0o36)))
print('8진수(0o36) -> 16진수({})'.format(hex(0o36)))