Tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số a,b

Yêu cầu:

– Nhập 2 số nguyên a,b.
a. Tìm USC lớn nhất của 2 số đó
b. Tìm bội số chung nhỏ nhất của 2 số đó

Phân tích:

– Dùng thuật toán Euclid để tìm USC lớn nhất

– BSC nhỏ nhất = a*b / USCLN(a, b)

Code:

/************************************************************
* Author: VNCODING
* History
* 2014/04/03 first create VNCODING
*************************************************************/
#include "stdio.h"
#include "conio.h"

int uscln(int a, int b);
int bscnn(int a, int b);
void main()
{
    int a = 6, b = 18;
    printf("USCLN(%d,%d) = %d\n", a, b, uscln(a, b));
    printf("BSCNN(%d,%d) = %d\n", a, b, bscnn(a, b));
    getch();
}
// dung thuat toan Euclid
int uscln(int a, int b)
{
    if(a == 0 && b == 0)
        return -1;
    else
        return (b == 0)? a : uscln(b, a%b);
}

int bscnn(int a, int b)
{
    if(a == 0 || b == 0)
        return -1;
    else
        return (a*b/uscln(a, b));
}

Kết quả:

USCLN(6,18) = 6
BSCNN(6,18) = 18

2 Comments on Tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số a,b

Leave a Reply

Your email address will not be published.

*