Greatest Common Divisor: Difference between revisions

From Algorithm Wiki
Jump to navigation Jump to search
(Created page with "== Problem Description== The greatest common divisor, sometimes also called the highest common divisor (Hardy and Wright 1979, p. 20), of two positive integers a and b is the largest divisor common to a and b. For example, GCD(3,5)=1, GCD(12,60)=12, and GCD(12,90)=6. The greatest common divisor GCD(a,b,c,...) can also be defined for three or more positive integers as the largest divisor shared by all of them. Two or more positive integers that have greatest common divis...")
 
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Problem Description==
{{DISPLAYTITLE:Greatest Common Divisor (Greatest Common Divisor)}}
The greatest common divisor, sometimes also called the highest common divisor (Hardy and Wright 1979, p. 20), of two positive integers a and b is the largest divisor common to a and b. For example, GCD(3,5)=1, GCD(12,60)=12, and GCD(12,90)=6. The greatest common divisor  GCD(a,b,c,...) can also be defined for three or more positive integers as the largest divisor shared by all of them. Two or more positive integers that have greatest common divisor 1 are said to be relatively prime to one another, often simply just referred to as being "relatively prime."
== Description ==  


== Bounds Chart ==
Let $a_1, \ldots, a_m$ be given nonzero integers. Then $g$ is called the greatest common divisor (GCD) of $a_1, \ldots, a_m$ if and only if it is the largest integer that divides all $a_1, \ldots, a_m$.
[[File:Greatest_Common_DivisorBoundsChart.png|1050px]]


== Step Chart ==
== Parameters ==  
[[File:Greatest_Common_DivisorStepChart.png|1050px]]


== Improvement Table ==
$n$: sum of number of bits among the integers
{| class="wikitable" style="text-align:center;" width="100%"
 
!width="20%" | Complexity Classes !! width="40%" | Algorithm Paper Links !! width="40%" | Lower Bounds Paper Links
== Table of Algorithms ==  
|-
| rowspan="1" | Exp/Factorial
|
|
|-
| rowspan="1" | Polynomial > 3
|
|
|-
| rowspan="1" | Cubic
|
|
|-
| rowspan="1" | Quadratic
| [ Euclid's algorithm (-300)]


[ Lehmer's GCD algorithm (1940)]
{| class="wikitable sortable"  style="text-align:center;" width="100%"


[ Binary GCD algorithm (1967)]
! Name !! Year !! Time !! Space !! Approximation Factor !! Model !! Reference


[https://hal.inria.fr/file/index/docid/71533/filename/RR-5050.pdf Sthele, Zimmermann (2006)]
|
|-
|-
| rowspan="1" | nlogn
 
|
| [[Euclid's algorithm (Greatest Common Divisor Greatest Common Divisor)|Euclid's algorithm]] || -300 || $O(n^{2})$ || $O(n)$ || Exact || Deterministic ||
|
|-
|-
| rowspan="1" | Linear
| [[Lehmer's GCD algorithm (Greatest Common Divisor Greatest Common Divisor)|Lehmer's GCD algorithm]] || 1940 || $O(n^{2})$ || $O(n)$ || Exact || Deterministic || 
|
|
|-
|-
| rowspan="1" | logn
| [[Binary GCD algorithm (Greatest Common Divisor Greatest Common Divisor)|Binary GCD algorithm]] || 1967 || $O(n^{2})$ || $O(n)$ || Exact || Deterministic || [https://arxiv.org/abs/0910.0095 Time]
|
|-
|
| [[Sthele, Zimmermann (Greatest Common Divisor Greatest Common Divisor)|Sthele, Zimmermann]] || 2006 || $O(n \log^{2} n \log \log n)$ || $O(n)$?? || Exact || Deterministic || [https://hal.inria.fr/file/index/docid/71533/filename/RR-5050.pdf Time]
|-|}
|-
|}
 
== Time Complexity Graph ==
 
[[File:Greatest Common Divisor - Time.png|1000px]]

Latest revision as of 10:12, 28 April 2023

Description

Let $a_1, \ldots, a_m$ be given nonzero integers. Then $g$ is called the greatest common divisor (GCD) of $a_1, \ldots, a_m$ if and only if it is the largest integer that divides all $a_1, \ldots, a_m$.

Parameters

$n$: sum of number of bits among the integers

Table of Algorithms

Name Year Time Space Approximation Factor Model Reference
Euclid's algorithm -300 $O(n^{2})$ $O(n)$ Exact Deterministic
Lehmer's GCD algorithm 1940 $O(n^{2})$ $O(n)$ Exact Deterministic
Binary GCD algorithm 1967 $O(n^{2})$ $O(n)$ Exact Deterministic Time
Sthele, Zimmermann 2006 $O(n \log^{2} n \log \log n)$ $O(n)$?? Exact Deterministic Time

Time Complexity Graph

Greatest Common Divisor - Time.png