📌  相关文章
📜  数的构成

📅  最后修改于: 2021-05-07 00:38:58             🧑  作者: Mango

给定自然数N ,任务是找到第N合成数。

例子:

方法:可以按照以下步骤计算第N合成数。

  1. 获取数字N。
  2. 查找所有不超过N的复合数字。
  3. 乘积获得的复合编号。
  4. 打印产品。

下面是上述方法的实现:

C++
// C++ program to find compositorial
// of composite numbers
#include 
using namespace std;
 
vector 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 compo =
              new Vector();
 
// 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


C#
// C# program to find compositorial
// of composite numbers
using System;
using System.Collections.Generic;
class GFG{
 
static List compo =
            new List();
 
// 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


输出:
17280