Compuesto XOR y Coprime AND

Dada una array arr[] , la tarea es contar el número de pares desordenados de índices (i, j) tales como mcd(2, a[i]^a[j]) > 1 y mcd(2, a[i ] & a[j]) < 2 donde ^ y & son operaciones XOR bit a bit y AND bit a bit respectivamente.
Ejemplos: 
 

Entrada: arr[] = {1, 2, 3, 4, 5} 
Salida:
Todos los pares válidos son (1, 3), (1, 5) y (3, 5)
Entrada: arr[] = {21, 121, 13, 44, 65} 
Salida:
 

Acercarse: 
 

  • gcd(2, a[i]^a[j]) > 1 solo será verdadero si tanto a[i] como a[j] son ​​pares o impares .
  • Restringiendo los pares del paso anterior, un par (a, b) nunca producirá mcd(2, a[i] & a[j]) < 2 si tanto a como b son pares . Entonces, solo los pares en los que a y b son impares satisfarán ambas condiciones dadas.
  • Cuente el número de elementos impares en la array dada y guárdelo como impar y el resultado será (impar * (impar – 1)) / 2 .

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 count of
// odd numbers in the array
int countOdd(int arr[], int n)
{
 
    // Variable to count odd numbers
    int odd = 0;
 
    for (int i = 0; i < n; i++) {
 
        // Odd number
        if (arr[i] % 2 == 1)
            odd++;
    }
 
    return odd;
}
 
// Function to return the count of valid pairs
int countValidPairs(int arr[], int n)
{
    int odd = countOdd(arr, n);
 
    return (odd * (odd - 1)) / 2;
}
 
// Driver Code
int main()
{
    int arr[] = { 1, 2, 3, 4, 5 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << countValidPairs(arr, n);
 
    return 0;
}

Java

// Java implementation of the approach
class GFG
{
    // Function to return the count of
    // odd numbers in the array
    static int countOdd(int [] arr, int n)
    {
     
        // Variable to count odd numbers
        int odd = 0;
     
        for (int i = 0; i < n; i++)
        {
     
            // Odd number
            if (arr[i] % 2 == 1)
                odd++;
        }
        return odd;
    }
     
    // Function to return the count of valid pairs
    static int countValidPairs(int [] arr, int n)
    {
        int odd = countOdd(arr, n);
     
        return (odd * (odd - 1)) / 2;
    }
     
    // Driver Code
    public static void main(String []args)
    {
        int [] arr = { 1, 2, 3, 4, 5 };
        int n = arr.length;
        System.out.println(countValidPairs(arr, n));
    }
}
 
// This code is contributed by ihritik           

Python3

# Python3 implementation of the approach
 
# Function to return the count of
# odd numbers in the array
def countOdd(arr, n):
 
    # Variable to count odd numbers
    odd = 0;
 
    for i in range(0, n):
 
        # Odd number
        if (arr[i] % 2 == 1):
            odd = odd + 1;
     
    return odd;
 
# Function to return the count
# of valid pairs
def countValidPairs(arr, n):
 
    odd = countOdd(arr, n);
 
    return (odd * (odd - 1)) / 2;
 
# Driver Code
arr = [1, 2, 3, 4, 5 ];
n = len(arr);
print(int(countValidPairs(arr, n)));
     
# This code is contributed by
# Shivi_Aggarwal

C#

// C# implementation of the approach
using System;
 
class GFG
{
    // Function to return the count of
    // odd numbers in the array
    static int countOdd(int [] arr, int n)
    {
     
        // Variable to count odd numbers
        int odd = 0;
     
        for (int i = 0; i < n; i++)
        {
     
            // Odd number
            if (arr[i] % 2 == 1)
                odd++;
        }
        return odd;
    }
     
    // Function to return the count of valid pairs
    static int countValidPairs(int [] arr, int n)
    {
        int odd = countOdd(arr, n);
     
        return (odd * (odd - 1)) / 2;
    }
     
    // Driver Code
    public static void Main()
    {
        int [] arr = { 1, 2, 3, 4, 5 };
        int n = arr.Length;
        Console.WriteLine(countValidPairs(arr, n));
    }
}
         
// This code is contributed by ihritik
 
        

PHP

<?php
// PHP implementation of the approach
 
// Function to return the count of
// odd numbers in the array
function countOdd($arr, $n)
{
 
    // Variable to count odd numbers
    $odd = 0;
 
    for ($i = 0; $i < $n; $i++)
    {
 
        // Odd number
        if ($arr[$i] % 2 == 1)
            $odd++;
    }
 
    return $odd;
}
 
// Function to return the count
// of valid pairs
function countValidPairs($arr, $n)
{
    $odd = countOdd($arr, $n);
 
    return ($odd * ($odd - 1)) / 2;
}
 
// Driver Code
$arr = array(1, 2, 3, 4, 5);
$n = sizeof($arr);
echo countValidPairs($arr, $n);
 
// This code is contributed by Ryuga
?>

Javascript

<script>
 
// Javascript implementation of the approach
 
// Function to return the count of
// odd numbers in the array
function countOdd(arr, n)
{
     
    // Variable to count odd numbers
    var odd = 0;
 
    for(var i = 0; i < n; i++)
    {
         
        // Odd number
        if (arr[i] % 2 == 1)
            odd++;
    }
    return odd;
}
 
// Function to return the count of valid pairs
function countValidPairs(arr, n)
{
    var odd = countOdd(arr, n);
 
    return (odd * (odd - 1)) / 2;
}
 
// Driver Code
var arr = [ 1, 2, 3, 4, 5 ];
var n = arr.length;
 
document.write(countValidPairs(arr, n));
 
// This code is contributed by Khushboogoyal499
     
</script>
Producción: 

3

 

Complejidad de tiempo: O(N)

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 *