본문 바로가기
개발일지/Python

파이썬 최소공배수 응용버전

by 개발에정착하고싶다 2022. 4. 30.
320x100

#내가 구글링 해서 찾은 코드로 만든 코드

GearA = 7
GearB = 12

min_common_number = 0

for i in range(max(GearA,GearB),(GearA * GearB)+1):
    if i % GearA ==0 and i % GearB == 0:
        min_common_number = i
        break

print(f'최초 만나는 톱니수(최소공배수): {min_common_number}톱니')
print('GearA 회전수: {}회전'.format(min_common_number//GearA))
print('GearB 회전수: {}회전'.format(min_common_number//GearB))

 

# 해답 버전 코드

 

 

gearATCnt = 12
gearBTCnt = 7

gearA = 0
gearB = 0
leastNum = 0

flag = True
while flag:

    if gearA != 0:
        if gearA != leastNum:
            gearA += gearATCnt
        else:
            flag = False
    else:
        gearA += gearATCnt

    if gearB != 0 and gearB % gearATCnt ==0:
        leastNum = gearB
    else:
        gearB += gearBTCnt


print('최초 만나는 톱니 수(최소공배수): {}톱니'.format(leastNum))
print('gearA 회전수: {}회전'.format(int(leastNum / gearATCnt)))
print('gearB 회전수: {}회전'.format(int(leastNum / gearBTCnt)))
300x250