VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • Python
  • Java WS
  • MyBatis
  • Eclipse
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • PHP
    • CSS
    • HTML
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Phần mềm tiện ích
    • Selenium Test
    • Lập trình C
    • Lập trình C++
  • Tuyển Dụng
Java Cơ Bản Các Khái Niệm Java OOPs Java String

Bài Tập Java

Danh sách bài tập java

Lời Giải Bài Tập Java Cơ Bản 1

Bai1 - giải phương trình bậc 2 Bai2 - Tính giai thừa Bai3 - Chuyển đổi hệ cơ số Bai4 - Dãy so Fibonacci Bai5 - Tìm UCLN và BCNN Bai6 - Liệt kê tất cả số nguyên tố nhỏ hơn n Bai7 - Liệt kê n số nguyên tố đầu tiên Bai8 - Liệt kê tất cả số nguyên tố có 5 chữ số Bai9 - Phân tích số nguyên Bai10 - Tính tổng của các chữ số của một số nguyên Bai11 - Số thuận nghịch Bai12 - Fibonacci nhỏ hơn n là nguyên tố Viết chương trình java tính hàm SLOPE trong excel

Lời Giải Bài Tập Java Cơ Bản 2

Bai16 - Đếm số từ của một sâu ký tự Bai17 - Số lần xuất hiện các từ trong một sâu Bai18 - Sâu s1 chứa sâu s2?

Lời Giải Bài Tập Mảng (Array) Trong Java

Bai19 - Liệt kê các phần tử xuất hiện trong mảng đúng 1 lần Bai20 - Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần Bai21 - Liệt kê số lần xuất hiện của các phần tử trong một mảng Bai22 - Sắp xếp mảng theo thứ tự tăng dần Bai23 - Sắp xếp mảng theo thứ tự giảm dần Bai24 - Chèn phần tử vào mảng trong java Bai26 - Trộn 2 mảng trong java

Lời Giải Bài Tập Java Nâng Cao

Lời giải bài tập QLSV
Xử Lý Ngoại Lệ Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Câu Hỏi Phỏng Vấn Java

Java - Tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số nguyên dương


Danh sách bài tập java
Liệt kê tất cả các số nguyên tố nhỏ hơn n

Đề bài: viết chương trình tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BSCNN) của hai số nguyên dương a và b.


Định nghĩa

USCLN của 2 số nguyên dương a và b là một số k lớn nhất, sao cho a và b đều chia hết cho k.

BSCNN của 2 số nguyên dương a và b là một số h nhỏ nhất, sao cho h chia hết cho cả a và b.



Lời giải

Một phương pháp đơn giản đề tìm USCLN của a và b là duyệt từ số nhỏ hơn trong 2 số a và b cho đến 1, khi gặp số nào đó mà cả a và b đều chia hết cho nó thì đó chính là USCLN của a và b. Tuy vậy phương pháp này chưa phải là hiệu quả nhất.

Vào thế kỷ 3 TCN, nhà toán học Euclid (phiên âm tiếng Việt là Ơ-clit) đã phát minh ra một giải thuật tìm USCLN của hai số nguyên dương rất hiệu quả được gọi là giải thuật Euclid. Cụ thể về ý tưởng của bài toán, giả sử a lớn hơn b, khi đó việc tính UCSLN của a và b sẽ được đưa về bài toán tính USCLN của a mod b và b vì USCLN(a, b) = USCLN(a mod b, b).

Khi đã tìm được USCLN thì việc tìm BSCNN của hai số nguyên dương a và b khá đơn giản. Khi đó BSCNN(a, b) = (a * b) / UCSLN(a, b).


Tìm USCLN và BSCNN của 2 số a và b trong java

Ví dụ dưới đây sử dụng giải thuật Euclid để giải quyết bài toán tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BSCNN) của hai số nguyên dương a và b.

File: BaiTap5.java


package vn.viettuts.baitap;

import java.util.Scanner;

/**
 * Chương trình tìm ước số chung lớn nhất (USCLN)
 * và bội số cung nhỏ nhất (BSCNN) của 2 số a và b
 * 
 * @author viettuts.vn
 */
public class BaiTap5 {
    private static Scanner scanner = new Scanner(System.in);
    /**
     * main
     * 
     * @param args
     */
    public static void main(String[] args) {
        System.out.print("Nhập số nguyên dương a = ");
        int a = scanner.nextInt();
        System.out.print("Nhập số nguyên dương b = ");
        int b = scanner.nextInt();
        // tính USCLN của a và b
        System.out.println("USCLN của " + a + " và " + b
                + " là: " + USCLN(a, b));
        // tính BSCNN của a và b
        System.out.println("BSCNN của " + a + " và " + b
                + " là: " + BSCNN(a, b));
    }
    
    /**
     * Tìm ước số chung lớn nhất (USCLN)
     * 
     * @param a: số nguyên dương
     * @param b: số nguyên dương
     * @return USCLN của a và b
     */
    public static int USCLN(int a, int b) {
        if (b == 0) return a;
        return USCLN(b, a % b);
    }
    
    /**
     * Tìm bội số chung nhỏ nhất (BSCNN)
     * 
     * @param a: số nguyên dương
     * @param b: số nguyên dương
     * @return BSCNN của a và b
     */
    public static int BSCNN(int a, int b) {
        return (a * b) / USCLN(a, b);
    }
}

Kết quả:

Nhập số nguyên dương a = 15
Nhập số nguyên dương b = 40
USCLN của 15 và 40 là: 5
BSCNN của 15 và 40 là: 120

Danh sách bài tập java
Liệt kê tất cả các số nguyên tố nhỏ hơn n


Recent Updates

Phân biệt List, Tuple, Set, Dictionany trong PythonHàm Dictionary dict() trong PythonHàm Set set() trong PythonBài tập Java - Trộn 2 mảng trong javaBài tập Java - Chèn phần tử vào mảng trong javaBài tập Java - Sắp xếp mảng theo thứ tự giảm dầnBài tập Java - Sắp xếp mảng theo thứ tự tăng dầnJava - Liệt kê số lần xuất hiện của các phần tử trong một mảngJava - Liệt kê các phần tử xuất hiện trong mảng đúng 2 lầnJava - Liệt kê các phần tử xuất hiện trong mảng đúng 1 lầnChuỗi chứa chuỗi trong javaJava - Liệt kê số lần xuất hiện của các từ trong một chuỗi

VietTuts on facebook

Học Java Cơ Bản Đến Nâng Cao - VietTuts.Vn

Danh sách bài học

Học java
Học servlet
Học jsp
Học Hibernate
Học Struts2
Học Spring
Học SQL

Câu hỏi phỏng vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

About VietTuts.Vn

Hệ thống bài học trên VietTuts.Vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống VietTuts.Vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en …

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | VietTuts.Vn team | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml