VL16 - Tìm bội chung nhỏ nhất của 2 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, Python, Ruby, Rust, Scratch, Swift

Trong số học, bội số chung nhỏ nhất (hay còn gọi tắt là bội chung nhỏ nhất, được viết tắt là BCNN, tiếng Anh: least common multiple hoặc lowest common multiple (LCM) hoặc smallest common multiple) của hai số nguyên ~a~ và ~b~ là số nguyên dương nhỏ nhất chia hết cho cả ~a~ và ~b~.

Hãy viết chương trình tìm bội chung nhỏ nhất của 2 số nguyên ~a~ và ~b~.

Input

  • 2 số nguyên ~a~ và ~b~

Giới hạn:

  • ~a * b \ne 0~
  • ~-1000 \le a, b \le 1000~

Output

1 giá trị duy nhất là bội chung nhỏ nhất của ~a~ và ~b~

Sample

Input #1
1 3
Output #1
3
Input #2
-1 3
Output #2
3

Bình luận

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



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

    include <bits/stdc++.h>

    define ll long long

    using namespace std;
    int main()
    {
    long long a,b;cin>>a>>b;
    cout<<abs((a*b)/(__gcd(a,b)));
    return 0;
    }
    full test nha, nhớ bội nn là số dương


  • 0
    thh  đã bình luận lúc 17, Tháng 1, 2024, 9:58

    code full 10 test ngắn nhất nè mn

    include <bits/stdc++.h>

    define int long long

    using namespace std;

    int a,b; void solve() {

    cin >> a >> b;
    cout << abs(a * b / __gcd(abs(a), abs(b)));
    

    }

    main() {

    ios::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    
    solve();
    return 0;
    

    }


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

      include <bits/stdc++.h>

      define ll long long

      using namespace std;
      int main()
      {
      long long a,b;cin>>a>>b;
      cout<<abs((a*b)/(__gcd(a,b)));
      return 0;
      }
      này ngắn hơn nè


  • 0
    hailuacx  đã bình luận lúc 14, Tháng 1, 2024, 2:06

    Chú ý cái bcnn lấy số dương. Full 10 test gửi các bạn tham khảo.

    include <bits/stdc++.h>

    using namespace std;

    int ucln1(int a, int b){ if (b== 0){ return a; } return ucln1(b,a%b); }

    int main(){ int a, b; cin >> a >> b; if (a%b == 0) { cout << a; } else { int bcnn = abs((a*b)/ucln1(a,b)); cout << bcnn; } return 0; }


  • -1
    Kha_ga_k29  đã bình luận lúc 1, Tháng 1, 2024, 7:54

    using System;

    namespace VL16TimBCNNCuaAVaB {

    internal class Program
    {
        static void Main(string[] args)
        {
            string[] stringNum = Console.ReadLine().Split();
            int a, b;
            a = Math.Abs(int.Parse(stringNum[0]));
            b = Math.Abs(int.Parse(stringNum[1]));
    
            int gcd = 1;
            if(a > b)
            {
                for(int i = 1; i <= b; i++)
                {
                    if(a % i == 0 && b % i == 0)
                    {
                        gcd = Math.Max(gcd, i);
                    }
                }
            }
            else
            {
                for (int i = 1; i <= a; i++)
                {
                    if (a % i == 0 && b % i == 0)
                    {
                        gcd = Math.Max(gcd, i);
                    }
                }
            }
            int lcm = (a * b) / gcd;
            Console.WriteLine(lcm);
        }
    }
    

    }C# (-)


  • -2
    kitajima2910  đã bình luận lúc 22, Tháng 12, 2023, 11:12

    Team Java đâu =]]z

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.math.BigInteger;
    import java.util.StringTokenizer;
    
    /**
     *
     * @author Kitajima2910
     */
    public class VL16 {
    
        public static void main(String[] args) throws IOException {
    
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st = new StringTokenizer(br.readLine());
    
            BigInteger a = BigInteger.valueOf(Integer.valueOf(st.nextToken())).abs();
            BigInteger b = BigInteger.valueOf(Integer.valueOf(st.nextToken())).abs();
    
            BigInteger gcd = a.gcd(b);
    
            //BCNN = (số thứ nhất * số thứ 2) / UCLN
            BigInteger bcnn = a.multiply(b).divide(gcd);
    
            System.out.println(bcnn.intValue());
    
        }
    
    }
    

  • -1
    VoPhatDat  đã bình luận lúc 20, Tháng 12, 2023, 15:41

    def BCNN(a, b): def UCLN(a, b): if (a == 0 or b == 0): return max(a, b) else: while (a != b): if a > b: a-=b elif a < b: b-=a return max(a,b) return abs(a * b // UCLN(abs(a), abs(b))) a, b = map(int,input().split()) print(BCNN(a, b))


  • 0
    deno  đã bình luận lúc 8, Tháng 12, 2023, 15:13

    DENO :

    #include <stdio.h> #include <math.h> #include <stdlib.h> int gcd(int a,int b){ if(a==0||b==0){ return a+b; } else{ while(b!=0){ int r=a%b; a=b; b=r; } return a; }

    } int main(){ int a,b; scanf("%d %d",&a,&b); int t=abs(a*b/gcd(a,b)); printf("%d",t); }


  • -11
    crillery  đã bình luận lúc 26, Tháng 11, 2023, 15:21 chỉnh sửa

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


  • -3
    hohoanghai5042011  đã bình luận lúc 21, Tháng 10, 2023, 7:46

    lấy giá tuyệt đối là ra


  • -2
    neuoavs  đã bình luận lúc 18, Tháng 10, 2023, 2:36

    case 6 là gì vậy mọi người


  • -4
    xhmai  đã bình luận lúc 13, Tháng 9, 2023, 7:52

    Sao em khong nop bai duoc vay admin :(, bao loi IE


  • -2
    HuyTagama  đã bình luận lúc 1, Tháng 9, 2023, 15:58

    Các bạn chỉ cần check a == 1 && b == -1 hoặc a == -1 && b == -1 rồi in ra -1, các trường hợp còn thì in lcm(a, b) như bình thường. Hơi ảo ma nhưng đây là test của web thì tuân theo vậy


    • 0
      codega  đã bình luận lúc 14, Tháng 10, 2023, 8:45

      theo mình cứ tính ucln r chia cho tích của 2 số vừa nhập thêm trị tuyệt đối nếu số âm là acept đỡ dài


  • -3
    Deveris  đã bình luận lúc 22, Tháng 8, 2023, 12:02

    include <iostream>

    include <cmath>

    int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; }

    int lcm(int a, int b) { return (a * b) / gcd(a, b); }

    int main() { int a, b; std::cin >> a >> b;

    if (a * b == 0 || std::abs(a) > 1000 || std::abs(b) > 1000) { return 0; }

    int result = lcm(a, b); std::cout << result << std::endl;

    return 0; } lỗi ở đâu vậy ạ, em sai bắt đầu ở test 4


    • 0
      swe_20  đã bình luận lúc 1, Tháng 9, 2023, 3:18

      testcase 4 hai so deu am day a


    • -9
      Khang86175  đã bình luận lúc 26, Tháng 8, 2023, 11:09

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