Application algorithms l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 21

Application: Algorithms PowerPoint PPT Presentation


  • 105 Views
  • Updated On :
  • Presentation posted in: General

Application: Algorithms. Lecture 20 Section 3.8 Wed, Feb 21, 2007. Greatest Common Divisors. Let a and b be integers that are not both 0. The greatest common divisor of a and b , denoted gcd( a , b ), is the unique positive integer d with the following properties:

Download Presentation

Application: Algorithms

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Application algorithms l.jpg

Application: Algorithms

Lecture 20

Section 3.8

Wed, Feb 21, 2007


Greatest common divisors l.jpg

Greatest Common Divisors

  • Let a and b be integers that are not both 0.

  • The greatest common divisor of a and b, denoted gcd(a, b), is the unique positive integer d with the following properties:

    • d | a and d | b.

    • For every integer c, if c | a and c | b, then c | d.


Least common multiples l.jpg

Least Common Multiples

  • Let a and b be nonzero integers.

  • The least common multiple of a and b, denoted lcm(a, b), is the unique positive integer m with the following properties:

    • a | m and b | m.

    • For every integer c, if a | c and b | c, then m | c.


The high school gcd algorithm l.jpg

The High-school gcd Algorithm

  • The high-school method is very inefficient.

  • Factor each number into standard form.

  • For each prime that appears in both factorizations, use it as a factor of the gcd along with the smaller of the two exponents.


Example l.jpg

Example

  • Find the gcd of 81900 and 54810.

  • We factor them as

    • 81900 = 22 32 52 71 131  290

    • 54810 = 21 33 51 71 130  291

  • Therefore, the gcd is

    • 2  32 5  7 = 630


The euclidean algorithm l.jpg

The Euclidean Algorithm

  • Factoring is inefficient; therefore, this algorithm is inefficient.

    • The run time of this algorithm is O(10d), where d is the number of digits in the number.

  • Euclid had a much better idea.

    • The run time of the Euclidean Algorithm is O(d), where d is the number of digits in the number.


The euclidean algorithm7 l.jpg

The Euclidean Algorithm

  • Input: A, B (positive integers, not both 0)


The euclidean algorithm8 l.jpg

The Euclidean Algorithm

  • Algorithm body:

  • Output: b

a := A

b := B

ifb = 0 then

swap a and b

r := a mod b

whiler > 0

a := b

b := r

r := a mod b

end while


Example9 l.jpg

Example

  • Apply the Euclidean Algorithm to A = 81900 and B = 54810.


Example10 l.jpg

Example

  • Apply the Euclidean Algorithm to A = 81900 and B = 54810.


Example11 l.jpg

Example

  • Apply the Euclidean Algorithm to A = 81900 and B = 54810.


Example12 l.jpg

Example

  • Find the gcd of 1098011 and 1033133.


Least common multiples13 l.jpg

Least Common Multiples

  • What is the efficient way to find lcm’s?

  • What is the lcm of 1098011 and 1033133?


Proof of the euclidean algorithm l.jpg

Proof of the Euclidean Algorithm

  • Theorem: The Euclidean Algorithm terminates for all legitimate inputs A and B.

  • Proof:

    • We may assume that B > 0.

    • After the first iteration of the while loop,

      0  b < B

      since b is the remainder of A divided by B.


Proof of the euclidean algorithm15 l.jpg

Proof of the Euclidean Algorithm

  • Each iteration produces a nonnegative remainder that is smaller than the previous remainder.

  • This cannot happen more than B times before the remainder is 0.


Proof of the euclidean algorithm16 l.jpg

Proof of the Euclidean Algorithm

  • Lemma 1: If b > 0, then gcd(b, 0) = b.

  • Proof:

    • b | b and b | 0.

    • For all integers c, if c | 0 and c | b, then c | b.

    • Therefore, b = gcd(b, 0).


Proof of the euclidean algorithm17 l.jpg

Proof of the Euclidean Algorithm

  • Lemma 2: If a and b are integers, with b 0, and q and r are integers such that

    a = qb + r

    then gcd(a, b) = gcd(b, r).

  • Proof:

    • Let d = gcd(b, r).

    • Then d | b and d | r and any integer that divides b and r must also divide d.


Proof of the euclidean algorithm18 l.jpg

Proof of the Euclidean Algorithm

  • We must show that d | a and d | b and any integer that divides a and b must also divide d.

  • We already know that d | b.

  • Since a = qb + r, it follows that d | a.

  • Let c be an integer such that c | a and c | b.

  • Since r = a – qb, it follows that c | r and so c | d.

  • Therefore, d = gcd(a, b).


Proof of the euclidean algorithm19 l.jpg

Proof of the Euclidean Algorithm

  • Theorem: The Euclidean Algorithm produces the gcd of A and B.

  • Proof:

    • After the final iteration of the while loop, r = 0.

    • By Lemma 1, the output b is the gcd of b and r, i.e., b = gcd(b, 0).

    • By Lemma 2, that is equal to the gcd of “a” and “b”in the final iteration.


Proof of the euclidean algorithm20 l.jpg

Proof of the Euclidean Algorithm

  • But “a” and “b” on the last iteration were “b” and “r” on the previous iteration.

  • Therefore, gcd(a, b) on the last iteration equals gcd(b, r) on the previous iteration, which equals gcd(a, b) on the previous iteration, and so on.

  • Following this argument all the back to the first iteration, we see that the output is gcd(A, B).


Proof of the euclidean algorithm21 l.jpg

Proof of the Euclidean Algorithm

  • In the next chapter, we will study mathematical induction.

  • At that point, we will be able to make this argument more rigorous.


  • Login