Composicional de un número

Dado un número natural N , la tarea es encontrar el N -ésimo número de composición. 

La composición de un número se refiere al producto de todos los enteros compuestos positivos hasta N. 
La composición de un número N se denota por 

\frac{N!}{N#}
 

donde N! es el factorial del número y N# es el Primorial del número N

 

Ejemplos:  

Entrada: N = 4 
Salida: 1728 
Explicación: 
Los primeros 4 números compuestos son 4, 6, 8, 9. Por lo tanto, el compositor es el producto de todos los números. 
Entrada: N = 5 
Salida: 17280 

Enfoque: Se pueden seguir los siguientes pasos para calcular el N -ésimo número de composición.  

  1. Obtener el número N.
  2. Encuentre todos los números compuestos hasta N.
  3. Producto de los números compuestos obtenidos.
  4. Imprime el producto.

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

C++

// C++ program to find compositorial
// of composite numbers
#include <bits/stdc++.h>
using namespace std;
 
vector<int> compo;
 
// Function to check if
// a number is composite.
bool isComposite(int n)
{
     
    // Corner cases
    if (n <= 3)
        return false;
 
    // This is checked so that we can
    // skip the middle five numbers
    // in the below loop
    if (n % 2 == 0 or n % 3 == 0)
        return true;
 
    int i = 5;
    while(i * i <= n)
    {
        if (n % i == 0 or
            n % (i + 2) == 0)
            return true;
        i = i + 6;
    }
    return false;
}
 
// This function stores all
// composite numbers less than N
void Compositorial_list(int n)
{
    int l = 0;
    for(int i = 4; i < 1000000; i++)
    {
       if (l < n)
       {
           if (isComposite(i))
           {
               compo.push_back(i);
               l += 1;
           }
       }
    }
}
 
// Function to calculate
// the compositorial of n
int calculateCompositorial(int n)
{
     
    // Multiply first n composite number
    int result = 1;
     
    for(int i = 0; i < n; i++)
        result = result * compo[i];
    return result;
}
 
// Driver code
int main()
{
    int n = 5;
     
    // Vector to store all the
    // composite less than N
    Compositorial_list(n);
     
    cout << (calculateCompositorial(n));
     
    return 0;
}
 
// This code is contributed by mohit kumar 29

Java

// Java program to find compositorial
// of composite numbers
import java.util.*;
class GFG{
 
static Vector<Integer> compo =
              new Vector<Integer>();
 
// Function to check if
// a number is composite.
static boolean isComposite(int n)
{
  // Corner cases
  if (n <= 3)
    return false;
 
  // This is checked so that we can
  // skip the middle five numbers
  // in the below loop
  if (n % 2 == 0 || n % 3 == 0)
    return true;
 
  int i = 5;
  while(i * i <= n)
  {
    if (n % i == 0 ||
        n % (i + 2) == 0)
      return true;
    i = i + 6;
  }
  return false;
}
 
// This function stores all
// composite numbers less than N
static void Compositorial_list(int n)
{
  int l = 0;
  for(int i = 4; i < 1000000; i++)
  {
    if (l < n)
    {
      if (isComposite(i))
      {
        compo.add(i);
        l += 1;
      }
    }
  }
}
 
// Function to calculate
// the compositorial of n
static int calculateCompositorial(int n)
{
  // Multiply first n
  // composite number
  int result = 1;
 
  for(int i = 0; i < n; i++)
    result = result * compo.get(i);
  return result;
}
 
// Driver code
public static void main(String[] args)
{
  int n = 5;
 
  // Vector to store all the
  // composite less than N
  Compositorial_list(n);
 
  System.out.print((calculateCompositorial(n)));
}
}
 
// This code is contributed by Princi Singh

Python3

# Python3 program to find Compositorial
# of composite numbers 
  
# Function to check
# if a number is composite.
def isComposite(n):
      
    # Corner cases
    if (n <= 3):
        return False
    
    # This is checked so that we can
    # skip the middle five numbers
    # in the below loop
    if (n % 2 == 0 or n % 3 == 0):
        return True
 
    i = 5
    while(i * i <= n):
            
        if (n % i == 0\
            or n % (i + 2) == 0):
            return True
        i = i + 6
            
    return False
      
# This function stores all 
# Composite numbers less than N
def Compositorial_list(n):
    l = 0
    for i in range(4, 10**6):
        if l<n:
            if isComposite(i):
                compo.append(i)
                l+= 1
          
    
# Function to calculate the
# Compositorial of n 
def calculateCompositorial(n):
      
    # Multiply first n composite number 
    result = 1
    for i in range(n):
        result = result * compo[i] 
    return result 
    
# Driver code 
if __name__ == "__main__":
    n = 5
  
    # Vector to store all the
    # composite less than N
    compo =[]
  
    Compositorial_list(n)
  
    print(calculateCompositorial(n))

C#

// C# program to find compositorial
// of composite numbers
using System;
using System.Collections.Generic;
class GFG{
 
static List<int> compo =
            new List<int>();
 
// Function to check if
// a number is composite.
static bool isComposite(int n)
{
  // Corner cases
  if (n <= 3)
    return false;
 
  // This is checked so that we can
  // skip the middle five numbers
  // in the below loop
  if (n % 2 == 0 || n % 3 == 0)
    return true;
 
  int i = 5;
  while(i * i <= n)
  {
    if (n % i == 0 ||
        n % (i + 2) == 0)
      return true;
    i = i + 6;
  }
  return false;
}
 
// This function stores all
// composite numbers less than N
static void Compositorial_list(int n)
{
  int l = 0;
  for(int i = 4; i < 1000000; i++)
  {
    if (l < n)
    {
      if (isComposite(i))
      {
        compo.Add(i);
        l += 1;
      }
    }
  }
}
 
// Function to calculate
// the compositorial of n
static int calculateCompositorial(int n)
{
  // Multiply first n
  // composite number
  int result = 1;
 
  for(int i = 0; i < n; i++)
    result = result * compo[i];
  return result;
}
 
// Driver code
public static void Main(String[] args)
{
  int n = 5;
 
  // List to store all the
  // composite less than N
  Compositorial_list(n);
 
  Console.Write((calculateCompositorial(n)));
}
}
 
// This code is contributed by Rajput-Ji

Javascript

<script>
    // Javascript program to find compositorial
    // of composite numbers
    let compo = [];
  
    // Function to check if
    // a number is composite.
    function isComposite(n)
    {
 
        // Corner cases
        if (n <= 3)
            return false;
 
        // This is checked so that we can
        // skip the middle five numbers
        // in the below loop
        if (n % 2 == 0 || n % 3 == 0)
            return true;
        let i = 5;
        while(i * i <= n)
        {
            if (n % i == 0 ||
                n % (i + 2) == 0)
                return true;
            i = i + 6;
        }
        return false;
    }
 
    // This function stores all
    // composite numbers less than N
    function Compositorial_list(n)
    {
        let l = 0;
        for(let i = 4; i < 1000000; i++)
        {
           if (l < n)
           {
               if (isComposite(i))
               {
                   compo.push(i);
                   l += 1;
               }
           }
        }
    }
 
    // Function to calculate
    // the compositorial of n
    function calculateCompositorial(n)
    {
 
        // Multiply first n composite number
        let result = 1;
 
        for(let i = 0; i < n; i++)
            result = result * compo[i];
        return result;
    }
     
    let n = 5;
      
    // Vector to store all the
    // composite less than N
    Compositorial_list(n);
    document.write(calculateCompositorial(n));
 
// This code is contributed by divyeshrabadiya07.
</script>
Producción: 

17280

 

Publicación traducida automáticamente

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