Page 1 of 1

Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Thu 26/02/2009 8:00 am
by clarkkent
Thủ thuật: Tìm ước số chung lớn nhất
Tác giả: Nguyễn Trung Tín
Mô tả: hàm tìm ước số chung lớn nhất


Có 2 cách
Cách 1:

Code: Select all

  1. Function USCLN1(A As Integer, B As Integer) As Integer
  2. While A <> 0 And B <> 0
  3.     Dim t As Integer
  4.     t = A: A = B: B = t Mod B
  5. Wend
  6. USCLN1 = A + B
  7. End Function


Cách 2:

Code: Select all

  1. Function USCLN2(A As Integer, B As Integer) As Integer
  2. While A <> 0 And B <> 0
  3. If A >= B Then
  4.     A = A - B
  5. Else
  6.     B = B - A
  7. End If
  8. Wend
  9. USCLN2 = A + B
  10. End Function

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Thu 26/02/2009 8:02 am
by clarkkent
Thủ thuật: Tìm bội số chung nhỏ nhất
Tác giả: Nguyễn Trung Tín
Mô tả: hàm bội số chung nhỏ nhất


Cần phải có 1 trong 2 hàm tìm USCLN ở trên

Code: Select all

  1. Function BSCNN(A As Integer, B As Integer) As Integer
  2. Dim ka, kb As Integer
  3. ka = (A * B): kb = USCLN1(A, B)
  4. BSCNN = ka / kb
  5. End Function


Không biết có cách nào gọn hơn???
Project:
USCLN_BSCNN.rar
Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất
(1.37 KiB) Downloaded 1526 times

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Thu 26/02/2009 8:38 am
by Kasper

Code: Select all

  1.  
  2. MsgBox USCLN1(10, -5) -> Kết quả là -5  :-/  :-/
  3.  


Trong toán học, nếu số nguyên d chia hết số nguyên a thì số d được gọi là của số nguyên a, a được gọi là bội của d. Số nguyên dương d lớn nhất là ước của cả hai số nguyên a, b được gọi là ứơc chung lớn nhất (ƯCLN) của a và b. Trong trường hợp cả hai số nguyên a và b đều bằng 0 thì chúng không có ƯCLN vì khi đó mọi số tự nhiên khác không đếu là ước chung của a và b. Nếu chỉ một trong hai số a hoặc b bằng 0, số kia khác không thì ƯCLN của chúng bằng giá trị tuyệt đối của số khác không.
Theo Wikipedia


Tìm USCLN như trên mà đi thi là 1 điểm rồi :D

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Tue 31/03/2009 7:35 pm
by set.8x
Cho em hỏi:Cái WEnd trong hàm là sao vậy.Viết sai bét hết,nếu cho hai số a=4,b=5 ,thì uscln=5.Tại sao lại vây.Thử chạy thuật toán bằng tay coi các anh chị

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Wed 01/04/2009 5:01 pm
by clarkkent
set.8x wrote:Cho em hỏi:Cái WEnd trong hàm là sao vậy.Viết sai bét hết,nếu cho hai số a=4,b=5 ,thì uscln=5.Tại sao lại vây.Thử chạy thuật toán bằng tay coi các anh chị

- Đó là vòng lặp
- Sao bằng 5 được, bạn thử lại coi

- Cái này là mình mới học toán rời rạc rồi mình dựa vào công thức để viết ra thôi, chưa có kiểm tra mấy cái dk ji ji đó :P

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Thu 02/04/2009 9:04 am
by xuanquy_th

Code: Select all

  1.  
  2. 'Nếu tôi tìm theo các này thì có được không?
  3.     'Gia lap mang cac so can tim
  4.     Dim md(1)  As Integer
  5.     Dim i As Integer, j As Integer
  6.     For i = 0 To UBound(md)
  7.         md(i) = (Rnd * 100)
  8.     Next i
  9.     'Xac dinh cac dieu kien de tin USCLN va BSCNN
  10.     Dim mMin As Integer, mMax As Integer, mTich As Long
  11.     mTich = 1: mMin = md(0): mMax = md(0)
  12.     For i = 0 To UBound(md)
  13.         If mMin > md(i) Then mMin = md(i)
  14.         If mMax < md(i) Then mMax = md(i)
  15.         mTich = mTich * md(i)
  16.     Next i
  17.     'Tim USCLN
  18.     Dim mUSCLN As Integer, flg As Boolean
  19.     For i = 1 To mMin
  20.         flg = True
  21.         For j = 0 To UBound(md)
  22.             flg = (flg And (md(j) Mod i = 0))
  23.         Next j
  24.         If flg Then mUSCLN = CInt(i)
  25.     Next i
  26.     'Tim BSCNN
  27.     Dim mBSCNN As Integer
  28.     For i = mMax To mTich
  29.         flg = True
  30.         For j = 0 To UBound(md)
  31.             flg = (flg And (i Mod md(j) = 0))
  32.         Next j
  33.         If flg Then mBSCNN = CInt(i): Exit For
  34.     Next i
  35.     MsgBox "USCLN la: " & mUSCLN & Space(20) & "BSCNN la: " & mBSCNN

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Tue 16/10/2012 11:43 pm
by duongtao
mình vừa hoc vb6,thấy câu lệnh bài này mình thật sự khó hiểu.ai giải thích dùm mình tại sao a=a-b else b=b-a thì lại tìm dc ước chung của 2 số.

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Thu 18/10/2012 1:50 am
by dazzlingvit

Re: Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất

Posted: Sun 30/12/2012 2:01 pm
by never19
Mấy a cho e hỏi nếu Tìm ước số chung lớn nhất và Bội số chung nhỏ nhất của 3 số thì phải làm thế nào?