Mình nghĩ khác 1 chút : ví dụ 3 số a,b,c đi (n số cũng tương tự)
Tìm ra được số lớn nhất rồi, thì mình sẽ chỉ kiểm tra bội số của số lớn nhất với các số còn lại thôi như vậy sẽ nhanh hơn,
Ví dụ : a,b,c =2,3,4
Như cách của bạn thì sẽ kiểm tra lần lượt 4,5,6,7,8,9,10,11,12 thì mới tìm ra được số 12 là bscnn đúng k ?
sao k kiểm tra bội số của 4 thôi : 4,8,12 thế sẽ ít hơn độ phức tạp .
Đây là code của mình (mình là sysadmin, học python vì nhận ra 1 điều k biết dev thì chả làm được sản phẩm gì của riêng mình cả, mãi mãi dùng đồ người khác.) vì thế nếu code có khó đọc khó hiểu hay sai chỗ nào mong các bạn chỉ giáo :
def bscnn(a, b, c):
#tim so lon nhat
if a > b and a > c:
max1 = a
elif b > c:
max1 = b
else :
max1 = c
# bien i de xac dinh buoc nhay boi so cua so lon nhat
i = 1
# max 1 de kiem tra so lon nhat co phai la bscnn k
# max 2 de luu gia tri so lon nhat trong 3 so
max2 = max1
while (True):
if((max1 % a == 0) and (max1 % b == 0) and (max1 % c == 0)):
bsc = max1
break
i += 1
max1 = max2*i
return bsc, i
a = int(input("Nhap Vao a: "))
b = int(input("Nhap Vao b: "))
c = int(input("Nhap Vao c: "))
print bscnn(a, b, c)