Valor mínimo que divide a un número y es divisible por otro

Dados dos enteros p y q , la tarea es encontrar el mínimo número x posible tal que q % x = 0 y x % p = 0 . Si las condiciones no se cumplen para ningún número, imprima -1 .
Ejemplos: 
 

Entrada: p = 3, q ​​= 99 
Salida:
99 % 3 = 0 
3 % 3 = 0
Entrada: p = 2, q = 7 
Salida: -1 
 

Enfoque: si un número x satisface la condición dada, entonces es obvio que q se dividirá entre p , es decir , q % p = 0 porque x es un múltiplo de p y q es un múltiplo de x
Entonces, el valor mínimo posible de x será el MCD de p y q , y cuando q no sea divisible por p , ningún número satisfará la condición dada.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the minimum valid number
// that satisfies the given conditions
int minValidNumber(int p, int q)
{
    // If possible
    if (q % p == 0)
        return __gcd(p, q);
    else
        return -1;
}
 
// Driver Code
int main()
{
    int p = 2, q = 6;
    cout << minValidNumber(p, q);
    return 0;
}

Java

//Java  implementation of the approach
 
import java.io.*;
 
class GFG {
     
    // Function to calculate gcd
    static int __gcd(int a, int b)
    {
         
        // Everything divides 0
        if (a == 0 || b == 0)
            return 0;
     
        // base case
        if (a == b)
            return a;
     
        // a is greater
        if (a > b)
            return __gcd(a - b, b);
             
        return __gcd(a, b - a);
    }
 
// Function to return the minimum valid number
// that satisfies the given conditions
static int minValidNumber(int p, int q)
{
    // If possible
    if (q % p == 0)
        return __gcd(p, q);
    else
        return -1;
}
 
// Driver Code
    public static void main (String[] args) {
        int p = 2, q = 6;
        System.out.print(minValidNumber(p, q));
 
 
    // THis code is contributed by  Sachin.
    }
}

Python3

# Python3 implementation of the approach
from math import gcd
 
# Function to return the minimum
# valid number that satisfies the
# given conditions
def minValidNumber(p, q) :
 
    # If possible
    if (q % p == 0) :
        return gcd(p, q)
    else :
        return -1
 
# Driver Code
if __name__ == "__main__" :
 
    p, q = 2, 6;
    print(minValidNumber(p, q))
 
# This code is contributed by Ryuga

C#

// C# implementation of the approach
using System;
 
class GFG
{
    // Function to calculate gcd
    static int __gcd(int a, int b)
    {
          
        // Everything divides 0
        if (a == 0 || b == 0)
            return 0;
      
        // base case
        if (a == b)
            return a;
      
        // a is greater
        if (a > b)
            return __gcd(a - b, b);
              
        return __gcd(a, b - a);
    }
 
// Function to return the minimum valid number
// that satisfies the given conditions
static int minValidNumber(int p, int q)
{
    // If possible
    if (q % p == 0)
        return __gcd(p, q);
    else
        return -1;
}
 
// Driver Code
public static void Main()
{
    int p = 2, q = 6;
    Console.Write(minValidNumber(p, q));
}
}
 
// THis code is contributed
// by Mukul Singh

PHP

<?php
// Php implementation of the approach
 
function gcd($a, $b)
{
 
    // Everything divides 0
    if($b == 0)
 
        return $a ;
 
    return gcd($b , $a % $b);
}
 
// Function to return the minimum valid
// number that satisfies the given conditions
function minValidNumber($p, $q)
{
    // If possible
    if ($q % $p == 0)
        return gcd($p, $q);
    else
        return -1;
}
 
// Driver Code
$p = 2;
$q = 6;
echo minValidNumber($p, $q);
 
// This code is contributed by ita_c
?>

Javascript

<script>
 
    // Javascript implementation of the approach
     
    // Function to calculate gcd
    function __gcd(a, b)
    {
           
        // Everything divides 0 
        if (a == 0 || b == 0)
            return 0;
       
        // base case
        if (a == b)
            return a;
       
        // a is greater
        if (a > b)
            return __gcd(a - b, b);
               
        return __gcd(a, b - a);
    }
     
    // Function to return the minimum valid number
    // that satisfies the given conditions
    function minValidNumber(p, q)
    {
        // If possible
        if (q % p == 0)
            return __gcd(p, q);
        else
            return -1;
    }  
     
    let p = 2, q = 6;
    document.write(minValidNumber(p, q));
     
</script>
Producción: 

2

 

Complejidad de tiempo: O (logn)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por souradeep 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 *