utkarsh.agarwal.min19's blog

By utkarsh.agarwal.min19, history, 5 years ago, In English

• GCD of a set of numbers can be thought as a blue-print of those numbers. If u keep adding the GCD you can make all numbers that belong in that set.

• Every common divisor of a and b is a divisor of gcd(a,b).

• Gcd(a,b) where both a and b are non-zero, can also be defined as the smallest positive integer d which can be a solution/which can be expressed as a linear combination of a and b in the form d=a*p + b*q, where both p and q are integers.

• Gcd(a, 0) = |a|, for a ≠ 0, since any number is a divisor of 0, and the greatest divisor of a is |a|.

• If 'a' divides b*c and gcd(a,b)=d , then a/d divides c.

• If m is a non-negative integer, then gcd(m⋅a, m⋅b) = m⋅gcd(a, b).It also follows from this property that if gcd(a,b)=g, then a/g and b/g should be coprime. Try to derive it yourslef.

• If m is any integer gcd(a,b)=gcd(a+m*b,b).

• The GCD: gcd(a, b) = gcd(b, a%b).

• If m is a positive common divisor of a and b, then gcd(a/m, b/m) = gcd(a, b)/m.

• GCD is a multiplicative function. That is if a1 and a2 are coprime gcd(a1*a2,b)=gcd(a1,b)*gcd(a2,b). -1. In particular, recalling that GCD is a positive integer valued function we obtain that gcd(a, b⋅c) = 1 if and only if gcd(a, b) = 1 and gcd(a, c) = 1. if the gcd is one then they need not be coprime to distribute the gcd, morever each gcd invidually should also be 1.

• The GCD is a commutative function: gcd(a, b) = gcd(b, a).

• The GCD is an associative function: gcd(a, gcd(b, c)) = gcd(gcd(a, b), c). Thus gcd(a, b, c, ...) can be used to denote the GCD of multiple arguments.

• gcd(a, b) is closely related to the least common multiple lcm(a, b): we have gcd(a, b)⋅lcm(a, b) = |a⋅b|.

• The following versions of distributivity hold true: gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c)) lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c)).

• If we have the unique prime factorizations of a = p1^e1*p2^e2 ⋅⋅⋅ pm^em and b = p1^f1*p2^f2 ⋅⋅⋅ pm^fm where ei ≥ 0 and fi ≥ 0, then the GCD of a and b is gcd(a,b) = p1^min(e1,f1) p2^min(e2,f2) ⋅⋅⋅ pm^min(em,fm).

• In a Cartesian coordinate system, gcd(a, b) can be interpreted as the number of segments between points with integral coordinates on the straight line segment joining the points (0, 0) and (a, b).

• For non-negative integers a and b, where a and b are not both zero, provable by considering the Euclidean algorithm in base n it simple states that: gcd(n^a-1,n^b-1)=n^gcd(a,b)-1

If u want an informal proof think of numbers in base 2 .We are calculating gcd's of number which contains all continuous 1 in their binary representations.. For ex: 001111 000011 their gcd can be the greatest common length which in this case is 2 thus the gcd becomes:000011 .Think of numbers in terms of length maybe you get the idea.

• An identity involving Euler's totient function: Gcd(a,b)=∑φ(k) where k are all common divisors of 'a' and 'b'

| Write comment?
»
5 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

This is pretty good and helpful.

»
5 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

didn't understand the one before the last

  • »
    »
    5 years ago, hide # ^ |
     
    Vote: I like it +3 Vote: I do not like it

    the formatting ruined it: it simple states that:gcd(n^a-1,n^b-1)=n^gcd(a,b)-1

    If u want an informal proof think of numbers in base 2 .We are calculating gcds of number which contains all continuous 1 in their binary representations.. For ex: 001111 000011 their gcd can be the greates common length which in this case is 2 thus the gcd becomes:000011 .Think of numbers in terms of length maybe you get the idea

»
5 years ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

Here's an interesting formula of $$$\gcd$$$ and Fibonacci number:

$$$F_{\gcd(a, b)}=\gcd(F_a,F_b)$$$
  • »
    »
    3 years ago, hide # ^ |
     
    Vote: I like it +7 Vote: I do not like it

    This relation is pretty interesting :)

    Important GCD properties we will use are

    1. $$$gcd(a,b) = gcd(a \pm kb,b) = gcd(b, a \% b)$$$, such that $$$a \pm kb \geq 0$$$.
    2. $$$gcd(a,0) = |a|$$$ for $$$a \neq 0 $$$ , since any number is a divisor of 0, and the greatest divisor of $$$a$$$ is $$$|a|$$$ .
    3. $$$gcd(a_1 \cdot a_2,b) = gcd(a_1,b) \cdot gcd(a_2,b)$$$, if $$$a_1$$$ and $$$a_2$$$ are relatively prime.

    Let assume $$$a \gt b$$$, the base cases are $$$F_{0}=0$$$, $$$F_{1}=1$$$ and $$$F_{2}=1$$$ .

    Claim $$$I$$$ : Every 2 consecutive Fibonacci numbers will always be co-prime $$$gcd(F_{a+1},F_{a})=1$$$.

    Proof I

    Claim $$$II$$$ : $$$gcd(F_{a},F_{b}) = gcd(F_{a-b},F_{b})$$$

    Proof II

    Corollary from Claim $$$II$$$ : $$$gcd(F_{a},F_{b}) = gcd(F_{b},F_{a \% b})$$$ , from GCD property $$$1$$$ we can keep on subtracting $$$b$$$ till $$$a-kb \geq 0$$$ which gives us $$$a \% b$$$ at the end.

    Final Steps :

    1. Now we are seeing that subscript variables are following same pattern for finding $$$gcd(a,b) = gcd(b,a \% b)$$$ recursively and indeed we do follow the same steps because of our proven Claims are allowing us do so.
    2. Just like $$$gcd(a,b)$$$ hit base case $$$gcd(x,0)$$$ and we claim $$$x$$$ is our Greatest Common Divisor, we will hit same base case for $$$F_{b},F_{a \% b}$$$ which will give, where $$$x = gcd(a,b)$$$
    $$$ gcd(F_{a},F_{b}) = gcd(F_{x},F_{0}) = F_{x} = F_{gcd(a,b)}$$$
    $$$ F_{gcd(a,b)} = gcd(F_{a},F_{b}) $$$

    which proves the interesting relation between $$$gcd$$$ and Fibonacci.

»
4 years ago, hide # |
 
Vote: I like it +5 Vote: I do not like it

Evergreen post

»
3 years ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

When solving 664A - Complicated GCD then how to input 10^100 digits in C program?

Explain the data types of C...

  • »
    »
    3 years ago, hide # ^ |
     
    Vote: I like it +11 Vote: I do not like it

    What's the GCD of n,n+1?

    • »
      »
      »
      11 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      gcd(n,n+1) == 1;

      PROOF

      LET'S Assume that n is even the n+1 must be odd and we know that the gcd of odd and even number is 1`

      • »
        »
        »
        »
        7 months ago, hide # ^ |
         
        Vote: I like it +4 Vote: I do not like it

        uh, this is blatantly wrong

        GCD of an odd and an even number is NOT neccessarily 1. Take for example 6 and 15.

        Let n >= 1 We claim that gcd(n, n + 1) = 1

        We prove the claim via contradiction. Let gcd(n, n + 1) = r. It can be proved that r >= 1.

        Assume that r != 1. This implies that r > 1 since r >= 1.

        We can see that r | n and r | n + 1. This directly implies that there are integers x and y such that

        n = x * r and n + 1 = y * r.

        Subtracting both the equations, we get

        1 = r * (y — x)

        We can conclude from this equation that y — x = 1 and r = 1 since r >= 0

        This is a contradiction since r > 1. QED.

        • »
          »
          »
          »
          »
          4 months ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          An easier proof is from the following property: gcd(a,b) = 1 iff p*a + q*b = 1 where p,q are integers. Now, (-1)*n + 1*(n+1) = 1 Hence, gcd(n, n+1) = 1 QED

        • »
          »
          »
          »
          »
          3 months ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          for more easier proof you can use the euclidian algorithm: gcd(n, n+1) = gcd(n+1-n, n-n) = gcd(1, 0) = 1

  • »
    »
    23 months ago, hide # ^ |
     
    Vote: I like it +1 Vote: I do not like it

    Note what it want you to solve. Not the $$$\gcd(a,b)$$$ but……

»
4 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Let a, b be integers.

Then c = gcd(a,b) iff

  1. c|a and c|b

  2. if x|a and x|b then x|c

(Here, x|y means "x divides y" or equivalently, y = nx for some integer n)

Note: There can be two gcd's of a and b, one positive and the other negative. We take the positive one as the "true" gcd.

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

gcd(a*b, c) = gcd(a,c)*gcd(b,c)/gcd(a,b,c)

It can be proved by decomposing each number into disjoint parts that cover all commonality.

a = p*x*y*t, b = q*x*z*t, c = r*y*z*t. Here p, q, and r are unique to a, b, and c respectively. t is common to all. x, y and z are common to a pair but not to all three. now it just becomes caluclations.

gcd(a, c) = y*t, gcd(b, c) = z*t, gcd(a, b, c) = t, gcd(a*b, c) = gcd(a*b, c) = y*z*t. RHS = (y*t)*(z*t)/t = y*z*t = RHS

»
3 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

This was super helpful, reading all the properties along with their proofs was really enjoyable. Thanks for sharing this blog.