Chương trình không chạy khi nhập số lớn hơn 1 triệu

Đoạn code này em viết để tính số ước chung của a và b nhưng chỉ chạy đc khi input nhỏ hơn 1 triệu thôi. Mọi người có thể giúp em có cách nào upgrade để nhập input lớn ko ạ?

a = int(input())
b = int(input())
s = 0
i = 1
while i <= a or i <= b:
 if a % i == 0 and b % i == 0:
  s += 1
 i += 1
print(s)

đổi kiểu dữ liệu int thành long

1 Like

Tính chất chia hết của hiệu :slight_smile:

Tấp vô lề bạn ei :smiley: python mà.

5 Likes
a = int(input())
b = int(input())
s=0
c = abs(a-b)
for i in range(1,c+1):
 if c % i == 0:
  s+=1
 i+=1
print(s)

như vậy đúng không anh ơi

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3

Bó tay :smiley:

Kí hiệu b | a là b chia hết a, vậy d | a && d | b => d | a - b
Nhồi vào: d | a - b && d | b => d | ? đến khi nào hai số bằng nhau là xong.

vậy là ta tìm được ước chung lớn nhất :smiley: sau đó phân tích thừa số của số này.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?