Valor entero positivo mínimo posible de X para A y B dados en X = P*A + Q*B

Dados los valores de A y B, encuentre el valor entero positivo mínimo de X que se puede lograr en la ecuación X = P*A + P*B, aquí P y Q pueden ser cero o cualquier número entero positivo o negativo. 
Ejemplos: 

Input: A = 3
        B = 2
Output: 1

Input: A = 2
         B = 4 
Output: 2

Básicamente, necesitamos encontrar P y Q tales que P*A > P*B y P*A – P*B sea el número entero positivo mínimo. Este problema se puede resolver fácilmente calculando el MCD de ambos números. 
Por ejemplo: 
 

For A = 2 
And B = 4
Let P  = 1
And Q = 0            
X = P*A + Q*B
  = 1*2 + 0*4
  = 2 + 0
  = 2 (i. e GCD of 2 and 4)

For A = 3
and B = 2
let P = -1
And Q = 2
X = P*A + Q*B
  = -1*3 + 2*2
  = -3 + 4
  = 1 ( i.e GCD of 2 and 3 )

A continuación se muestra la implementación de la idea anterior:

CPP

// CPP Program to find
// minimum value of X
// in equation X = P*A + Q*B
 
#include <bits/stdc++.h>
using namespace std;
 
// Utility function to calculate GCD
int gcd(int a, int b)
{
    if (a == 0)
        return b;
    return gcd(b % a, a);
}
 
// Driver Code
int main()
{
    int a = 2;
    int b = 4;
    cout << gcd(a, b);
    return 0;
}

Java

// Java Program to find
// minimum value of X
// in equation X = P*A + Q*B
import java.util.*;
import java.lang.*;
 
class GFG {
    // utility function to calculate gcd
 
    public static int gcd(int a, int b)
    {
        if (a == 0)
            return b;
 
        return gcd(b % a, a);
    }
 
    // Driver Program
    public static void main(String[] args)
    {
        int a = 2;
        int b = 4;
 
        System.out.println(gcd(a, b));
    }
}

Python3

# Python3 Program to find
# minimum value of X
# in equation X = P * A + Q * B
 
# Function to return gcd of a and b
 
 
def gcd(a, b):
    if a == 0:
        return b
    return gcd(b % a, a)
 
 
a = 2
b = 4
print(gcd(a, b))

C#

// CSHARP Program to find
// minimum value of X
// in equation X = P*A + Q*B
using System;
 
class GFG {
    // function to get gcd of a and b
    public static int gcd(int a, int b)
    {
        if (a == 0)
            return b;
 
        return gcd(b % a, a);
    }
 
    // Driver Code
    static public void Main()
    {
        int a = 2;
        int b = 4;
        Console.WriteLine(gcd(a, b));
    }
}

PHP

// PHP Program to find
// minimum value of X
// in equation X = P*A + Q*B
 
<?php
 
// Function to return
// gcd of a and b
function gcd($a, $b)
{
    if ($a == 0)
        return $b;
    return gcd($b % $a, $a);
}
  
// Driver Code
$a = 2;
$b = 4;
echo gcd($a, $b);
 
?>

Javascript

<script>
// javascript Program to find
// minimum value of X
// in equation X = P*A + Q*B
 
    // utility function to calculate gcd
 
    function gcd(a , b) {
        if (a == 0)
            return b;
 
        return gcd(b % a, a);
    }
 
    // Driver Program
     
        var a = 2;
        var b = 4;
 
        document.write(gcd(a, b));
 
// This code contributed by umadevi9616
</script>
Producción

2

Publicación traducida automáticamente

Artículo escrito por ihritik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *