Tìm-bội-chung-nhỏ-nhất-của-một-mảng

Tìm bội chung nhỏ nhất của tất cả các phần tử trong mảng

Bài toán: Cho mảng một chiều các số nguyên dương. Hãy viết chương trình tìm bội chung nhỏ nhất của một mảng các số nguyên đã cho.

  • Bội chung nhỏ nhất là số nguyên x nhỏ nhất sao cho x chia hết cho tất cả các các phần tử trong mảng.

Ví dụ:

  • Input:

  • Output:

 

Ý tưởng tìm bội chung nhỏ nhất của một mảng

  • Để tìm bội chung nhỏ nhất của một mảng thì ta thực hiện tìm bội chung nhỏ nhất của hai số đầu tiên của mảng là a[0] và a[1] sau đó lưu giá trị vào một biến temp.
  • Việc tiếp theo là ta tìm BCNN của temp và a[2] rồi lại tiến hành lưu BCNN vào biến temp.
  • Ta cứ thực hiện lần lượt tìm BCNN của temp  và các phần tử tiếp theo của mảng.
  • Sau khi tìm BCNN của temp với tất cả các số nguyên trong mảng rồi thì temp chính là bội chung nhỏ nhất của một mảng.

Xây dựng hàm tính bội chung nhỏ nhất:

  • Để tính bội chung nhỏ nhất của hai số a, b thì ta tiến hành phân tích a, b thành các thừa số nguyên tố.
  • Nếu a và b là các số nguyên tố thì BCNN là a*b.
  • Tiến hành lấy các thừa số nguyên tố chung và riêng của a và b.
  • Lập tích các thừa số đã chọn, mỗi thừa số lấy với số mũ lớn nhất của nó. Tích đó là BCNN cần tìm.

Ví dụ:

Tuy nhiên có một cách khác tính BCNN nhanh hơn mà không cần phải phân tích ra thành các thừa số nguyên tố.

  • BCNN( a, b ) = a*b / UCLN( a, b );
  • Nếu các bạn chưa biết cách tính UCLN thì có thể xem tại đây.

Code tham khảo

Sau khi chạy chương trình trên ta nhận được kết quả:

Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

Similar Posts

Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments