VL15 - Rút gọn phân số

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Cho tử số ~a~ và mẫu số ~b~ của 1 phân số là các số nguyên, bạn cần viết 1 chương trình rút gọn phân số ~\frac{a}{b}~ về phân số tối giản.

Input

  • Tử số ~a~ và mẫu số ~b~ của phân số cần rút gọn

Giới hạn

  • ~|a|, |b| \le 1000 ~

Output

Phân số tối giản sau khi đã rút gọn

  • Nếu phân số được yêu cầu không hợp lệ, in ra INVALID
  • Nếu giá trị của phân số là một số nguyên, in ra số nguyên đó
  • Trường hợp khác, in ra tử số và mẫu số của phân số tối giản cách nhau 1 dấu cách

Sample

Input #1
4 -8
Output #1
-1 2

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -5
    SigmaPhu  đã bình luận lúc 13, Tháng 3, 2025, 7:38

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -5
    SigmaPhu  đã bình luận lúc 12, Tháng 3, 2025, 8:04

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -1
    NguyenCongDat  đã bình luận lúc 28, Tháng 2, 2025, 11:42 chỉnh sửa

    thì ra phải xuống dòng khi in kết quả mới full xD


  • 0
    Ngoc_Thach  đã bình luận lúc 23, Tháng 2, 2025, 3:56

    Bài này nếu là số âm thì phải là tử âm nhé, mẫu luôn là số dương


  • 0
    Ngoc_Thach  đã bình luận lúc 23, Tháng 2, 2025, 3:50 chỉnh sửa

    Không có gì cả hihi


    • -1
      Ngoc_Thach  đã bình luận lúc 23, Tháng 2, 2025, 3:58

      sao lại paste code vào cmt thế này, xoá đi kiểu gì ạ


  • 0
    The_end19090  đã bình luận lúc 28, Tháng 1, 2025, 15:24

    bài này nên dùng gcd và mình xét tử và mẫi của nó sẽ bằng a = -a; b = -b; còn nếu (b == 1) cout << a hoac cout << a << " " << b; phan con lại tự làm =))


  • 3
    Bach2013  đã bình luận lúc 1, Tháng 1, 2025, 8:46

    case 4,5 mẫu số là âm nên nhớ để dấu âm lên tử số nha


  • -4
    Phanbao26072009  đã bình luận lúc 7, Tháng 11, 2024, 3:59

    test cASE 2 LÀ GÌ V MN



  • -3
    sugardaddy  đã bình luận lúc 26, Tháng 10, 2024, 2:37

    ai hoi


  • -7
    kietjumper  đã bình luận lúc 9, Tháng 10, 2024, 2:58

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 2
    loc_hoang  đã bình luận lúc 30, Tháng 9, 2024, 3:06 chỉnh sửa

    case 2 xử lý ntn vậy mn


    • 0
      uchiha17  đã bình luận lúc 19, Tháng 2, 2025, 3:04

      là nếu mẫu ==1 thì in ra a luôn(âm hay dương thì tự xử lí)


  • 1
    shibainu  đã bình luận lúc 17, Tháng 5, 2024, 7:25

    test case 2 là gì vậy ạ


  • -3
    ngodochanh  đã bình luận lúc 17, Tháng 4, 2024, 14:35

    public static int findGreatestCommonDivisor(int a, int b) { a = Math.abs(a); b = Math.abs(b);

        while (b != 0) {
            int temp = b;
            b = a % b;
            a = temp;
        }
    
        return a;
    }
    
    public static String simplifyFraction(int a, int b) {
        if (b == 0) {
            return "INVALID";
        }
    
        if (a % b == 0) {
            return String.valueOf(a / b);
        }
    
        int commonDivisor = findGreatestCommonDivisor(a, b);
    
        if ((a > 0 && b > 0) || (a < 0 && b < 0)) {
            a = Math.abs(a);
            b = Math.abs(b);
        } else {
            a = -Math.abs(a);
            b = Math.abs(b);
        }
    
        return a / commonDivisor + " " + b / commonDivisor;
    }
    

  • 1
    HND683  đã bình luận lúc 16, Tháng 3, 2024, 20:49

    case chú ý nếu a = 0 nhé


  • 1
    sairon2k8  đã bình luận lúc 1, Tháng 3, 2024, 7:36

    case 4 là gì vậy mn mình sai ngay khúc đó


  • 2
    hoangvanthong  đã bình luận lúc 22, Tháng 1, 2024, 14:50

    int fake=__gcd(a,b) int anew=a/fake int bnew=b/fake if(anew%bnew!=0) if(anew<0 and bnew<0){ cout<<abs(anew)<<" "<<abs(bnew) return 0 } if(anew>=0 and bnew<0){ cout<<anew-anew*2<<" "<<abs(bnew) return 0 } if((anew>=0 and bnew>0) or (anew<0 and bnew>0)){ cout<<anew<<" "<


  • 3
    luyencode123  đã bình luận lúc 19, Tháng 10, 2023, 9:01

    Chú ý trường hợp phân số không rút gọn được và cả tử và mẫu cùng âm.


  • 1
    nhpnhpnhp  đã bình luận lúc 18, Tháng 10, 2023, 15:53

    chú ý case 5 là 2 số âm nhe mn


  • 1
    daokoaiyeu  đã bình luận lúc 27, Tháng 11, 2023, 19:17 chỉnh sửa

    case cuối xử lý ntn v


  • 1
    h6phz5  đã bình luận lúc 17, Tháng 9, 2023, 14:39

    case là gì nhỉ


  • -1
    rabbitcode  đã bình luận lúc 16, Tháng 9, 2023, 2:06

    case 2 là gì thế mn ơi


  • 0
    trinhtheanh3010  đã bình luận lúc 26, Tháng 8, 2023, 9:42

    test case 4 là gì v mn