inputNum = int(input('0보다 큰 정수 입력: '))
for number in range(1, inputNum+1):
if inputNum % number == 0:
print('{}의 약수: {}'.format(inputNum, number))
inputNum = int(input('0보다 큰 정수 입력: '))
for number in range(2, inputNum+1):
flag = True
for n in range(2, number): #number가 2부터 number-1까지의 숫자 중 약수가 있는지 판별 (약수가 있으면 소수가 X. 합성수임)
if number % n == 0:
flag = False
break #하나라도 약수가 있기 때문에 for문을 더이상 반복하지 않아도 되니까 반복문을 끝냄
if flag:
print('{} : 소수!!'.format(number))
else:
print('{} : 합성수!!'.format(number))
inputNum = int(input('1보다 큰 정수 입력: '))
n = 2
while n <= inputNum:
if inputNum % n == 0:
print('소인수: {}'.format(n))
inputNum /= n #inputNum = inputNum / n
else:
n += 1
inputNum = int(input('1보다 큰 정수 입력: '))
n = 2
searchNumbers = []
while n <= inputNum:
if inputNum % n == 0:
print('소인수: {}'.format(n))
if searchNumbers.count(n) == 0:
searchNumbers.append(n) #리스트에 n을 추가
elif searchNumbers.count(n) == 1:
searchNumbers.remove(n) #리스트에 있는 n을 삭제
inputNum /= n
else:
n += 1
print('searchNumbers: {}'.format(searchNumbers))
num1 = int(input('1보다 큰 정수 입력: ')) #num1 < num2 라고 가정하고 품
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 #계속 공약수가 새로 들어가면서 마지막 공약수(최대공약수)가 maxNum에 할당됨
print('최대공약수: {}'.format(maxNum))
num1 = int(input('1보다 큰 정수 입력: '))
num2 = int(input('1보다 큰 정수 입력: '))
temp1 = num1; temp2 = num2
while temp2 > 0:
temp = temp2
temp2 = temp1 % temp2
temp1 = temp
print('{}, {}의 최대공약수: {}'.format(num1, num2, temp1))
minNum = (num1 * num2) // maxNum
print('최소공배수: {}'.format(minNum))
-> 최소공배수는 두 수를 곱한 수를 최대공약수로 나눈 몫과 같음
진법 : 특정 숫자 몇 개를 사용하여 수를 표시하는 방법
2진법 : 0, 1 사용
8진법 : 0~7 사용
10진법 : 0~9 사용
16진법 : 0~9, A~F 사용 (대소문자 상관X)
10진수를 X진수로 변환 -> X로 나누기
10진수 -> 2진수 : ex) 8을 2로 나누기(더이상 나눌수 없을때까지) -> 한번 한번의 나머지를 왼쪽부터 붙이기 -> 1000
X진수를 10진수로 변환 -> 제곱에 곱하기
2진수 -> 10진수 : 2진수의 일의자리부터 순서대로 2의 0,1,2,3제곱을 해주고 이거에 각각 자리수를 곱해 더함 (2진수에서 0은 계산안해도됨)
8진수 -> 10진수 : 8의 0,1,2,3제곱을 자리수에 곱해 더함
X진수 -> 2진수, 8진수, 16진수
2진수: bin(수) -> 결과: 0b2진수
8진수: oct(수) -> 결과: 0o8진수
16진수: hex(수) -> 결과: 0x16진수
-> 변환결과의 자료형은 문자열(string)
포맷함수 이용하기
2진수: format(수, '#b') -> #을 없애면 0b,0o,0x가 사라지고 수만 출력됨
8진수: format(수, '#o')
16진수: format(수, '#x')
print('{0:#b}, {0:#o}, {0:#x}'.format(dNum, dNum, dNum))
2진수: int('0b11110', 2)
8진수: int('0o36', 8)
16진수: int('0x1e', 16)
print('2진수(0b11110) -> 10진수({})'.format(int('0b11110', 2)))
print('8진수(0o36) -> 10진수({})'.format(int('0o36', 8)))
print('16진수(0x1e) -> 10진수({})'.format(int('0x1e', 16)))
<제로베이스 데이터 취업 스쿨>