1부터 30까지의 숫자 중 5로 나눈 몫과 나머지가 모두 소수인 숫자
1부터 30까지의 숫자 중 소수
파이썬을 이용해서 사용자가 입력한 숫자의 약수를 출력
# 파이썬을 이용해서 사용자가 입력한 숫자의 약수를 출력
inputNumber = int(input('0보다 큰 정수 입력 : '))
for number in range(1, inputNumber + 1):
if inputNumber % number == 0:
print('{}의 약수 : {}' .format(inputNumber, number))
💡 파이썬을 이용해서 사용자가 입력한 숫자까지의 소수를 출력
# 파이썬을 이용해서 사용자가 입력한 숫자까지의 소수를 출력
inputNumber = int(input('0보다 큰 정수 입력 : '))
for number in range(2, inputNumber+1): # 소수는 2부터! ★
flag = True
for n in range(2, number):
if number % n == 0:
flag = False # 더이상 반복하지 않아도 되므로 false 값을 주고, 반복에서 나옴 ★
break # ★
if (flag):
print('{} : 소수!' .format(number))
else:
print('{} : 합성수!' .format(number))
다음의 수를 소인수분해를 통해서 약수 구하기
💡 파이썬을 이용해서 사용자가 입력한 수를 소인수분해
# 파이썬을 이용해서 사용자가 입력한 수를 소인수분해
inputNumber = int(input('1보다 큰 정수 입력 : '))
n = 2
while n <= inputNumber:
if inputNumber % n == 0:
print('소인수 : {}' .format(n))
inputNumber /= n # inputNumber = inputNumber / n
else :
n += 1
💡 72에 x를 곱하면 y의 제곱이 된다고 할 때, x에 해당하는 가장 작은 정수 구하기
# 72에 x를 곱하면 y의 제곱이 된다고 할 때, x에 해당하는 가장 작은 정수
inputNumber = int(input('1보다 큰 정수 입력 : '))
n = 2
searchNumbers = []
while n <= inputNumber:
if inputNumber % n == 0:
print('소인수 : {}' .format(n))
if searchNumbers.count(n) == 0: # .count(n) : 리스트 안에 n의 개수 반환
searchNumbers.append(n) # .append(n) : 리스트 안에 n 추가
elif searchNumbers.count(n) == 1: # 하나인 것만 찾기 위해 이미 하나가 있으면 두개가 되지 않도록 기존거 제거해서 0개로 만들기
searchNumbers.remove(n) # .remove(n) : 리스트 안의 n 제거
inputNumber /= n
else:
n += 1
print(f'72에 x를 곱하면 y의 제곱이 된다고 할 때, x에 해당하는 가장 작은 정수 : {searchNumbers}')
다음 수의 최대공약수 및 공약수 구하기
빵 112개와 우유 80개를 학생들한테 남김없이 동일하게 나누어 주려고 할 때,
최대 몇 명의 학생이 빵과 우유를 받을 수 있는지 계산해 보자.
그리고, 학생 한 명이 받게 되는 빵과 우유의 개수를 계산해 보자.
112 = 122227
80 = 122225
두 개의 수를 입력하면 공약수와 최대공약수를 출력하는 코드를 작성
# 두 개의 수를 입력하면 공약수와 최대공약수를 출력하는 코드를 작성
#(첫 번째 입력한 숫자보다 두번째 입력한 숫자가 더 크다고 가정)
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))
세 개의 수를 입력하면 공약수와 최대공약수를 출력하는 코드를 작성
# 세 개의 수를 입력하면 공약수와 최대공약수를 출력하는 코드를 작성
num1 = int(input('1보다 큰 정수 입력 : '))
num2 = int(input('1보다 큰 정수 입력 : '))
num3 = int(input('1보다 큰 정수 입력 : '))
maxNum = 0
for i in range(1, num1 + 1):
if num1 % i == 0 and num2 % i == 0 and num3 % i == 0:
print('공약수 : {}' .format(i))
maxNum = i
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(f'{num1}, {num2}의 최대공약수 : {temp1}')
for n in range(1, temp1 + 1):
if temp1 % n == 0:
print('{}, {}의 공약수 : {}'.format(num1, num2, n))
다음 수의 최소공배수 및 공배수를 구하기
2, 5, 8 중 하나만 제외하고 나머지 두 개의 수는 5을 곱하여도 최소공배수에 변함이
없다. 5를 곱하였을 때 최소공배수에 변함이 있는 수 찾기
💡 두 개의 수를 입력하면 최소공배수를 출력하는 코드를 작성
# 두 개의 수를 입력하면 최소공배수를 출력하는 코드를 작성
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))
💡 세 개의 수를 입력하면 최소공배수를 출력하는 코드를 작성
# 세 개의 수를 입력하면 최소공배수를 출력하는 코드를 작성
num1 = int(input('1보다 큰 정수 입력 : '))
num2 = int(input('1보다 큰 정수 입력 : '))
num3 = int(input('1보다 큰 정수 입력 : '))
maxNum = 0
for i in range(1, num1+1):
if num1 % i == 0 and num2 % i == 0:
maxNum = i
print('최대공약수 : {}' .format(maxNum))
minNum = int((num1 * num2) / maxNum)
print('{},{}의 최소공배수 : {}' .format(num1, num2, minNum))
newNum = minNum
for i in range(1, newNum+1):
if newNum % i == 0 and num3 % i == 0:
maxNum = i
print('최대공약수 : {}' .format(maxNum))
minNum = int((newNum * num3) / maxNum)
print('{},{},{}의 최소공배수 : {}' .format(num1, num2, num3, minNum))
섬마을에 과일, 생선, 야채를 판매하는 배가 다음 주기로 입항한다고 할 때, 모든 배가 입항하는 날짜를 계산
#섬마을에 과일, 생선, 야채를 판매하는 배가 다음 주기로 입항한다고 할 때,
#모든 배가 입항하는 날짜를 계산
ship1 = 3; ship2 = 4; ship3 = 5
maxDay = 0
for i in range(1,ship1+1):
if ship1 % i == 0 and ship2 % i == 0:
maxDay = i
print('최대공약수 : {}' .format(maxDay))
minDay = int((ship1 * ship2) / maxDay)
print('{},{}의 최소공배수 : {}' .format(ship1, ship2, minDay))
newDay = minDay
for i in range(1, newDay+1):
if newDay % i == 0 and ship3 % i == 0:
maxNum = i
print('최대공약수 : {}' .format(maxDay))
minNum = int((newDay * ship3) / maxNum)
print('{},{},{}의 최소공배수 : {}' .format(ship1, ship2, ship3, minDay))
print(f'{minDay} 일마다 모든 선박이 입항합니다.')
dNum = 30
print('2진수 : {}' .format(bin(dNum)))
print('8진수 : {}' .format(oct(dNum)))
print('16진수 : {}' .format(hex(dNum)))
print('2진수(0b11110) -> 8진수({})' .format(oct(0b11110)))
print('2진수(0b11110) -> 10진수({})' .format(int(0b11110)))
print('2진수(0b11110) -> 16진수({})' .format(hex(0b11110)))
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))
print('2진수 : {}' .format(format(dNum,'b'))) # 진수 표현 없애기 가능
print('8진수 : {}' .format(format(dNum,'o'))) # 진수 표현 없애기 가능
print('16진수 : {}' .format(format(dNum,'x'))) # 진수 표현 없애기 가능
print('2진수 : {}' .format(type(format(dNum,'b')))) # 결과는 문자열
print('2진수 : {}' .format(int('0b11110',2))) # 2진수를 10진수로 변환
print('8진수 : {}' .format(int('0o36',8))) # 8진수를 10진수로 변환
print('16진수 : {}' .format(format(int('0x1e',16)))) # 16진수를 10진수로 변환
print('2진수(0b11110) -> 8진수({})' .format(int('0b11110',2)))
print('2진수(0b11110) -> 10진수({})' .format(int('0o36',8)))
print('2진수(0b11110) -> 16진수({})' .format(format(int('0x1e',16))))
다음 수열의 일반항을 구하기
다음 수열의 일반항을 구하기
💻 출처 : 제로베이스 데이터 취업 스쿨