Code tìm bội số chung nhỏ nhất và ước số chung lớn nhất của a và b bị sai

Mình cảm ơn nhiều
^^

a * b trước là tràn số đó :smiley: phải chia trước.

4 Likes

gán a*b=c rồi chia sau được không ạ?

Cũng không tràn được, a * b tối đa là 108 ^ 2.

3 Likes

Cho bộ test sai nè:

1
9 9

Anh thử nghĩ xem sao lại sai đi nhé.

2 Likes

ra 9 9? Mình nghĩ Right chứ

Ước chung nhỏ nhất của 9 và 9 là 9 hay là 1 ạ :thinking:

UCLN ^^, 9 mà bạn :((

2 Likes

Em đọc sai đề :sweat_smile:. Đợi em tí em tìm bộ khác xem. Khả năng chỉ ở 1 số bộ đặc biệt thôi. Nếu sai nữa thì chắc là do máy của trường rồi.

Hệ thống compiler online b ạ :frowning: không biết lúc đi thi cũng cùng compiler đấy có hẹo không nữa

Có khi do kết quả đúng, nhưng “bộ kiểm định” làm “máy móc” quá.
Như:

9 9

khác với

9 9 

^dấu cách ở cuối.

Hoặc:

9 9

khác với

9 9

Cũng có thể máy (thầy) trường làm sai. :smiling_imp:

3 Likes
int GCD (int a, int b) {
     
     int tmp;
    while(b != 0) {
        tmp = a % b;
        a = b;
        b = tmp;
    }
    return a;
}

Mình thay bằng hàm GCD này thấy vẫn không được, cho cả trường hợp bằng 0 vào rồi ạ

thử với 2 số 70000 và 70000 là biết sai chỗ nào ~.~

thử luôn thêm 100 trường hợp 10^8 và 1 là thấy nó chạy chậm

5 Likes

Vậy anh thử đổi kí tự xuất ra màn hình xem. Đổi chỗ LCM và GCD ấy.
cout<<GCD(a,b)<<" "<<LCM(a,b);
Hoặc cũng có thể yêu cầu nhập tất cả bộ test mới đưa ra kết quả. Anh có ví dụ cho output không ạ.
Cũng có thể do tràn số như anh @tntxtnt nói, anh thay bằng unsigned long long int để chống tràn luôn. Đóng bỉm cho biến.

3 Likes

Thì ra là 10^8 à? Cứ tưởng là 108 chứ? @Tu_Tran, dấu ^ đâu mất rồi vậy?

3 Likes

để kiểu của LCM là long long được không ạ

thay cả của biến a,b nữa anh ạ. Tick solution cho anh ấy đi.
@Tu_Tran tick solution cho cmt này của anh @tntxtnt chứ không phải cmt của em -_-

1 Like

mình tick rồi ây, chắc ấn nhầm :3rd_place_medal:

Cảm ơn mọi người nha. AC xanh rồi ạ ^^

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