Cuente las ocurrencias de un elemento en una array de tamaño N * N generada de manera que cada elemento sea igual al producto de sus índices | Conjunto-2

-Dados dos enteros positivos N y X , la tarea es contar las ocurrencias del entero X dado en una array cuadrada de longitud N generada de manera que cada elemento de la array sea igual al producto de sus índices de fila y columna ( 1- indexación basada ).

Ejemplos:

Entrada: N = 5, X = 6
Salida: 2
Explicación:
La array 2D formada es igual a:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
Hay 2 ocurrencias del elemento X(= 6) en la array generada.

Entrada: N = 7, X = 12
Salida: 4

Enfoque ingenuo: consulte este artículo para conocer el enfoque más simple para resolver el problema al construir la array dada multiplicando los índices de fila y columna para obtener cada elemento de la array y contar el número de ocurrencias de X.

Tiempo Complejidad: O(N 2 )
Espacio Auxiliar: O(N 2 )

Enfoque eficiente: la idea se basa en la observación de que la i -ésima fila contiene todos los múltiplos de i en el rango [1, N] . Por lo tanto, X aparece en la i -ésima fila si y solo si X es exactamente divisible por i y X/i debe ser menor o igual que N. Si es cierto, incremente el conteo en 1. Siga los pasos a continuación para resolver el problema:

  • Inicialice una variable, digamos count , para almacenar el recuento de ocurrencias de X en la array generada.
  • Iterar sobre el rango [1, N] usando la variable i y realizar los siguientes pasos:
    • Si X es divisible por i , almacene el cociente de X / i en una variable, digamos b .
    • Si el valor de b cae en el rango [1, N] , aumente el conteo en 1 .
  • Después de completar los pasos anteriores, imprima el valor de conteo como resultado.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to count the occurrences
// of X in the generated square matrix
int countOccurrences(int n, int x)
{
    // Store the required result
    int count = 0;
 
    // Iterate over the range [1, N]
    for (int i = 1; i <= n; i++) {
 
        // Check if x is a
        // multiple of i or not
        if (x % i == 0) {
 
            // Check if the other multiple
            // exists in the range or not
            if (x / i <= n)
                count++;
        }
    }
 
    // Print the result
    cout << count;
}
 
// Driver Code
int main()
{
    int N = 7, X = 12;
    countOccurrences(N, X);
 
    return 0;
}

Java

// Java program for the above approach
 
class GFG{
 
// Function to count the occurrences
// of X in the generated square matrix
static void countOccurrences(int n, int x)
{
    // Store the required result
    int count = 0;
 
    // Iterate over the range [1, N]
    for (int i = 1; i <= n; i++) {
 
        // Check if x is a
        // multiple of i or not
        if (x % i == 0) {
 
            // Check if the other multiple
            // exists in the range or not
            if (x / i <= n)
                count++;
        }
    }
 
    // Print the result
    System.out.print(count);
}
 
// Driver Code
public static void main(String[] args)
{
    int N = 7, X = 12;
    countOccurrences(N, X);
 
}
}
 
// This code contributed by shikhasingrajput

Python3

# Python3 program for the above approach
 
# Function to count the occurrences
# of X in the generated square matrix
def countOccurrences(n, x):
     
    # Store the required result
    count = 0
 
    # Iterate over the range [1, N]
    for i in range(1, n + 1):
 
        # Check if x is a
        # multiple of i or not
        if (x % i == 0):
 
            # Check if the other multiple
            # exists in the range or not
            if (x // i <= n):
                count += 1
 
    # Print the result
    print(count)
 
# Driver Code
if __name__ == "__main__":
     
    N = 7
    X = 12
     
    countOccurrences(N, X)
 
# This code is contributed by ukasp

C#

// C# program for the above approach
using System;
class GFG
{
 
  // Function to count the occurrences
  // of X in the generated square matrix
  static void countOccurrences(int n, int x)
  {
    // Store the required result
    int count = 0;
 
    // Iterate over the range [1, N]
    for (int i = 1; i <= n; i++) {
 
      // Check if x is a
      // multiple of i or not
      if (x % i == 0) {
 
        // Check if the other multiple
        // exists in the range or not
        if (x / i <= n)
          count++;
      }
    }
 
    // Print the result
    Console.WriteLine(count);
  }
 
  // Driver Code
  public static void Main(String[] args)
  {
    int N = 7, X = 12;
    countOccurrences(N, X);
  }
}
 
// This code is contributed by splevel62.

Javascript

<script>
 
// Javascript program for the above approach
 
// Function to count the occurrences
// of X in the generated square matrix
function countOccurrences(n, x)
{
    // Store the required result
    var count = 0;
 
    // Iterate over the range [1, N]
    for (var i = 1; i <= n; i++) {
 
        // Check if x is a
        // multiple of i or not
        if (x % i == 0) {
 
            // Check if the other multiple
            // exists in the range or not
            if (x / i <= n)
                count++;
        }
    }
 
    // Print the result
    document.write( count);
}
 
// Driver Code
var N = 7, X = 12;
countOccurrences(N, X);
 
</script>
Producción: 

4

 

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

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