반복문
# 버스는 총 3종류, 각각 A,B,C
# 먼저 오전 6시 첫차 : 오후 23시 운행 종료
# A버스 : 15분 간격 운행
# B버스 : 13분 간격 운영
# 6시 20분 첫차 : 오후 22시 운행 종료
# C버스 : 8분 간격 운행
# 집앞 버스 정류장에서 학교까지 가는 버스 A,B,C의 운행정보가 위와 같을 때,
# 2대 이상의 버스가 정차하는 시간대를 모두 출력
busA = 15 ; busB = 13 ; busC = 8
totalMin = 17*60
for i in range(totalMin+1) :
# A,B bus만 운행
if i < 20 or i > (totalMin - 60) :
if (i % busA == 0) & (i % busB == 0) :
hour = 6 + i // 60
min = i % 60
print('busA와 busB 동시 정차!! \t {}:{}'.format(hour,min))
else :
# A,B bus 동시 정차
if (i % busA == 0) & (i % busB == 0) :
hour = 6 + i // 60
min = i % 60
print('busA와 busB 동시 정차!! \t {}:{}'.format(hour,min))
# A,C bus 동시 정차
elif (i % busA == 0) & ((i-20) % busC == 0) :
hour = 6 + i // 60
min = i % 60
print('busA와 busC 동시 정차!! \t {}:{}'.format(hour,min))
# B,C bus 동시 정차
elif (i % busB == 0) & ((i-20) % busC == 0) :
hour = 6 + i // 60
min = i % 60
print('busB와 busC 동시 정차!! \t {}:{}'.format(hour,min))
# 톱니가 각각 7개와 12개의 두 개의 톱니바퀴가 서로 맞물려 회전한다.
# 회전을 시작한 후 처음 맞물린 톱니가 최초로 다시 만나게 될때까지의
# 톱니의 수와 각각의 바퀴 회전수를 출력하는 프로그램
# (단, n2는 n1보다 크다)
gearA_num = int(input('GearA 톱니수 입력 : '))
gearB_num = int(input('GearB 톱니수 입력 : '))
gearA = 0
gearB = 0
leastNum = 0
flag = True
while flag :
if gearA != 0 :
if gearA != leastNum :
gearA += gearA_num
else :
flag = False
else :
gearA += gearA_num
if gearB != 0 and gearB % gearA_num == 0 :
leastNum = gearB
else :
gearB += gearB_num
print('최초 만나는 톱니수(최소공배수) : {}톱니'.format(leastNum))
print('gearA 회전수 : {}회전'.format(int(leastNum/gearA_num)))
print('gearB 회전수 : {}회전'.format(int(leastNum/gearB_num)))