← Trang chủ

[Thuật toán nhỏ] Tìm bội chung nhỏ nhất của 3 số bất kỳ

Yêu cầu

  • Input: nhập 3 số nguyên: a, b, c
  • Output: BCNN(a, b, c)

Khái niệm

Bội chung nhỏ nhất của các số nhất kỳ là số nhỏ nhất có thể chia hết cho tất cả các số đó

Ý tưởng, hướng giải

Ta sẽ tìm số lớn nhất nhất từ các số vừa nhập và cho nó chạy từ số đó đến khi nào số đang chạy có thê chia hết cho 3 số đã nhập thì dừng báo kết quả.

Giải quyết bài toán

  • Bước 1: nhập 3 số a, b, c
  • Bước 2: Tìm số lớn nhất từ 3 số a, b, c vừa nhập, gán vào i
  • Bước 3: cho biến cho biến greater chạy -> vô cưc, đồng thời ra điều kiện nếu 3 số i đều chia hết cho 3 số a, b, c thì gán bcnn <- greater
  • Bước 4: dừng vòng lập và in ra biến bcnn.

Chương trình mẫu (Python, PHP, C++)

Python

# Tìm BCNN của 3 số
# đinh nghĩa hàm

def bcnn(a, b, c):
   # tìm số lớn nhất trong 3 số
   if a > b and a > c:
       greater = a
   elif b > c:
       greater = b
   else:
       greater = c

  # chạy và tìm BCNN
   while(True):
       if((greater % x == 0) and (greater % y == 0) and (greater % z == 0)):
           bcnn = greater
           break
       greater += 1

   return bcnn

# Người dùng nhập vào 3 số a, b, c
a = int(input("Nhập vào a: "))
b = int(input("Nhập vào b: "))
c = int(input("Nhập vào c: "))

print "Vậy BCNN(a, b, c) = ", bcnn(a, b, c)

PHP

<?php
# Tìm BCNN của 3 số

# Kiem tra nguoi dung gui du lieu
  if (isset($_POST['send']){

  # đinh nghĩa hàm

  function bcnn($a, $b, $c){
     # tìm số lớn nhất trong 3 số
     if ($a > $b && $a > $c)
         $greater = $a;
     elseif (b > c)
         $greater = $b;
     else
         $greater = $c;

    # chạy và tìm BCNN
 while(true){
     if(($greater % $x == 0) && ($greater % $y == 0) && ($greater % $z == 0)){
         $bcnn = $greater;
         $break;
     }
     $greater++;
 }

 return $bcnn;
  }

  # Người dùng nhập vào 3 số a, b, c
  $a = $_POST['a'];
  $b = $_POST['c'];
  $c = $_POST['b'];

  echo "Vậy BCNN(a, b, c) = ", bcnn($a, $b, $c);
}

## nguoi dung nhap du lieu
?>
<form method="POST">
    Nhap a: <input type="number" name="a" /><br />
    Nhap b: <input type="number" name="b" /><br>
    Nhap c: <input type="number" name="c" /><br />
    <input type="submit" name="send" value="OK" />
</form>

C++

#include <iostream>
using namespace std;


int bcnn( int a, int b, int c);

int main() {
    int a, b, c;
    cout << "Nhap 3 so a, b, c: ";
    cin >> a >> b >> c;
    
    cout << "BCNN(a, b, c) = : " << bcnn(a, b,c);
    
    return 0;
}

// Tìm BCNN của 3 số
int bcnn( int a, int b, int c) {
     // tìm số lớn nhất trong 3 số
     int greater, bcnn;
     greater = (a > b && a > c ) ? a : ((b > c) ? b : c);

     // chạy và tìm BCNN
 while (true) {
    if (greater%a == 0 && greater%b == 0 && greater%c == 0){
        bcnn = greater;
        break;
    }
    ++greater;
 }
}

Có gì góp ý cho mình nha smiley

Tác giả

dqh

Đăng vào

Bài viết gốc

Thông tin

Proudly published with Statinamic