Generate all the products of a number in which each element is divisible by the previous element
Here given code implementation process.
// C Program
// Generate all the products of a number in which
// each element is divisible by the previous element
#include <stdio.h>
// Display result
void printSequence(int result[], int n)
{
for (int i = 0; i < n; ++i)
{
printf(" %d", result[i]);
}
printf("\n");
}
void findCombination(int num, int result[], int index, int product)
{
if (product == num)
{
// Display calculated result
printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
for (int i = 2; i <= num / 2; ++i)
{
if (index == 0 || i % result[index - 1] == 0)
{
// Collects resultant value
result[index] = i;
// Find other combination using recursion
findCombination(num, result, index + 1, product *i);
}
}
}
void combination(int num)
{
if (num <= 0)
{
return;
}
if (num == 1)
{
printf("\n 1 \n");
return;
}
printf("\n Given Number : %d\n", num);
// Collect result
int result[num];
// Test
findCombination(num, result, 0, 1);
}
int main()
{
int num = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
combination(num);
num = 11;
/*
num = 11
---------------
None
*/
combination(num);
return 0;
}
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
// Java Program
// Generate all the products of a number in which
// each element is divisible by the previous element
public class Combinations
{
// Display result
public void printSequence(int[] result, int n)
{
for (int i = 0; i < n; ++i)
{
System.out.print(" " + result[i]);
}
System.out.print("\n");
}
public void findCombination(int num,
int[] result,
int index,
int product)
{
if (product == num)
{
// Display calculated result
printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
for (int i = 2; i <= num / 2; ++i)
{
if (index == 0 || i % result[index - 1] == 0)
{
// Collects resultant value
result[index] = i;
// Find other combination using recursion
findCombination(num, result, index + 1, product * i);
}
}
}
public void combination(int num)
{
if (num <= 0)
{
return;
}
if (num == 1)
{
System.out.print("\n 1 \n");
return;
}
System.out.println("\n Given Number : " + num);
// Collect result
int[] result = new int[num];
// Test
findCombination(num, result, 0, 1);
}
public static void main(String args[])
{
Combinations task = new Combinations();
int num = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task.combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task.combination(num);
num = 11;
/*
num = 11
---------------
None
*/
task.combination(num);
}
}
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
// Include header file
#include <iostream>
using namespace std;
// C++ Program
// Generate all the products of a number in which
// each element is divisible by the previous element
class Combinations
{
public:
// Display result
void printSequence(int result[], int n)
{
for (int i = 0; i < n; ++i)
{
cout << " " << result[i];
}
cout << "\n";
}
void findCombination(int num,
int result[],
int index,
int product)
{
if (product == num)
{
// Display calculated result
this->printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
for (int i = 2; i <= num / 2; ++i)
{
if (index == 0 || i % result[index - 1] == 0)
{
// Collects resultant value
result[index] = i;
// Find other combination using recursion
this->findCombination(num,
result,
index + 1,
product *i);
}
}
}
void combination(int num)
{
if (num <= 0)
{
return;
}
if (num == 1)
{
cout << "\n 1 \n";
return;
}
cout << "\n Given Number : " << num << endl;
// Collect result
int result[num];
// Test
this->findCombination(num, result, 0, 1);
}
};
int main()
{
Combinations *task = new Combinations();
int num = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task->combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task->combination(num);
num = 11;
/*
num = 11
---------------
None
*/
task->combination(num);
return 0;
}
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
// Include namespace system
using System;
// Csharp Program
// Generate all the products of a number in which
// each element is divisible by the previous element
public class Combinations
{
// Display result
public void printSequence(int[] result, int n)
{
for (int i = 0; i < n; ++i)
{
Console.Write(" " + result[i]);
}
Console.Write("\n");
}
public void findCombination(int num,
int[] result,
int index,
int product)
{
if (product == num)
{
// Display calculated result
this.printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
for (int i = 2; i <= num / 2; ++i)
{
if (index == 0 || i % result[index - 1] == 0)
{
// Collects resultant value
result[index] = i;
// Find other combination using recursion
this.findCombination(num,
result,
index + 1,
product * i);
}
}
}
public void combination(int num)
{
if (num <= 0)
{
return;
}
if (num == 1)
{
Console.Write("\n 1 \n");
return;
}
Console.WriteLine("\n Given Number : " + num);
// Collect result
int[] result = new int[num];
// Test
this.findCombination(num, result, 0, 1);
}
public static void Main(String[] args)
{
Combinations task = new Combinations();
int num = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task.combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task.combination(num);
num = 11;
/*
num = 11
---------------
None
*/
task.combination(num);
}
}
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
package main
import "fmt"
// Go Program
// Generate all the products of a number in which
// each element is divisible by the previous element
type Combinations struct {}
func getCombinations() * Combinations {
var me *Combinations = &Combinations {}
return me
}
// Display result
func(this Combinations) printSequence(result[] int, n int) {
for i := 0 ; i < n ; i++ {
fmt.Print(" ", result[i])
}
fmt.Print("\n")
}
func(this Combinations) findCombination(num int,
result[] int, index int, product int) {
if product == num {
// Display calculated result
this.printSequence(result, index)
return
}
if index >= num || product > num {
// Base case when stop process
return
}
for i := 2 ; i <= num / 2 ; i++ {
if index == 0 || i % result[index - 1] == 0 {
// Collects resultant value
result[index] = i
// Find other combination using recursion
this.findCombination(num, result, index + 1, product * i)
}
}
}
func(this Combinations) combination(num int) {
if num <= 0 {
return
}
if num == 1 {
fmt.Print("\n 1 \n")
return
}
fmt.Println("\n Given Number : ", num)
// Collect result
var result = make([] int, num)
// Test
this.findCombination(num, result, 0, 1)
}
func main() {
var task * Combinations = getCombinations()
var num int = 56
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task.combination(num)
num = 32
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task.combination(num)
num = 11
/*
num = 11
---------------
None
*/
task.combination(num)
}
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
<?php
// Php Program
// Generate all the products of a number in which
// each element is divisible by the previous element
class Combinations
{
// Display result
public function printSequence($result, $n)
{
for ($i = 0; $i < $n; ++$i)
{
echo(" ".$result[$i]);
}
echo("\n");
}
public function findCombination($num, $result,
$index, $product)
{
if ($product == $num)
{
// Display calculated result
$this->printSequence($result, $index);
return;
}
if ($index >= $num || $product > $num)
{
// Base case when stop process
return;
}
for ($i = 2; $i <= (int)($num / 2); ++$i)
{
if ($index == 0 || $i % $result[$index - 1] == 0)
{
// Collects resultant value
$result[$index] = $i;
// Find other combination using recursion
$this->findCombination($num, $result,
$index + 1, $product * $i);
}
}
}
public function combination($num)
{
if ($num <= 0)
{
return;
}
if ($num == 1)
{
echo("\n 1 \n");
return;
}
echo("\n Given Number : ".$num.
"\n");
// Collect result
$result = array_fill(0, $num, 0);
// Test
$this->findCombination($num, $result, 0, 1);
}
}
function main()
{
$task = new Combinations();
$num = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
$task->combination($num);
$num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
$task->combination($num);
$num = 11;
/*
num = 11
---------------
None
*/
$task->combination($num);
}
main();
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
// Node JS Program
// Generate all the products of a number in which
// each element is divisible by the previous element
class Combinations
{
// Display result
printSequence(result, n)
{
for (var i = 0; i < n; ++i)
{
process.stdout.write(" " + result[i]);
}
process.stdout.write("\n");
}
findCombination(num, result, index, product)
{
if (product == num)
{
// Display calculated result
this.printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
for (var i = 2; i <= parseInt(num / 2); ++i)
{
if (index == 0 || i % result[index - 1] == 0)
{
// Collects resultant value
result[index] = i;
// Find other combination using recursion
this.findCombination(num, result,
index + 1,
product * i);
}
}
}
combination(num)
{
if (num <= 0)
{
return;
}
if (num == 1)
{
process.stdout.write("\n 1 \n");
return;
}
console.log("\n Given Number : " + num);
// Collect result
var result = Array(num).fill(0);
// Test
this.findCombination(num, result, 0, 1);
}
}
function main()
{
var task = new Combinations();
var num = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task.combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task.combination(num);
num = 11;
/*
num = 11
---------------
None
*/
task.combination(num);
}
main();
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
# Python 3 Program
# Generate all the products of a number in which
# each element is divisible by the previous element
class Combinations :
# Display result
def printSequence(self, result, n) :
i = 0
while (i < n) :
print(" ", result[i], end = "")
i += 1
print(end = "\n")
def findCombination(self, num, result, index, product) :
if (product == num) :
# Display calculated result
self.printSequence(result, index)
return
if (index >= num or product > num) :
# Base case when stop process
return
i = 2
while (i <= int(num / 2)) :
if (index == 0 or i % result[index - 1] == 0) :
# Collects resultant value
result[index] = i
# Find other combination using recursion
self.findCombination(num, result,
index + 1, product * i)
i += 1
def combination(self, num) :
if (num <= 0) :
return
if (num == 1) :
print("\n 1 ")
return
print("\n Given Number : ", num)
# Collect result
result = [0] * (num)
# Test
self.findCombination(num, result, 0, 1)
def main() :
task = Combinations()
num = 56
# num = 56
# --------
# 2 ⤌ 2 ⤌ 14
# 2 ⤌ 28
# ---------------
# Here 2 % 2 == 0 14 % 2 == 0
# 28 % 2 == 0
# Element divisible previous element
task.combination(num)
num = 32
# num = 32
# ---------------
# 2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
# 2 ⤌ 2 ⤌ 2 ⤌ 4
# 2 ⤌ 2 ⤌ 8
# 2 ⤌ 4 ⤌ 4
# 2 ⤌ 16
# 4 ⤌ 8
task.combination(num)
num = 11
# num = 11
# ---------------
# None
task.combination(num)
if __name__ == "__main__": main()
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
# Ruby Program
# Generate all the products of a number in which
# each element is divisible by the previous element
class Combinations
# Display result
def printSequence(result, n)
i = 0
while (i < n)
print(" ", result[i])
i += 1
end
print("\n")
end
def findCombination(num, result, index, product)
if (product == num)
# Display calculated result
self.printSequence(result, index)
return
end
if (index >= num || product > num)
# Base case when stop process
return
end
i = 2
while (i <= num / 2)
if (index == 0 || i % result[index - 1] == 0)
# Collects resultant value
result[index] = i
# Find other combination using recursion
self.findCombination(num, result,
index + 1, product * i)
end
i += 1
end
end
def combination(num)
if (num <= 0)
return
end
if (num == 1)
print("\n 1 \n")
return
end
print("\n Given Number : ", num, "\n")
# Collect result
result = Array.new(num) {0}
# Test
self.findCombination(num, result, 0, 1)
end
end
def main()
task = Combinations.new()
num = 56
# num = 56
# --------
# 2 ⤌ 2 ⤌ 14
# 2 ⤌ 28
# ---------------
# Here 2 % 2 == 0 14 % 2 == 0
# 28 % 2 == 0
# Element divisible previous element
task.combination(num)
num = 32
# num = 32
# ---------------
# 2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
# 2 ⤌ 2 ⤌ 2 ⤌ 4
# 2 ⤌ 2 ⤌ 8
# 2 ⤌ 4 ⤌ 4
# 2 ⤌ 16
# 4 ⤌ 8
task.combination(num)
num = 11
# num = 11
# ---------------
# None
task.combination(num)
end
main()
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
// Scala Program
// Generate all the products of a number in which
// each element is divisible by the previous element
class Combinations()
{
// Display result
def printSequence(result: Array[Int], n: Int): Unit = {
var i: Int = 0;
while (i < n)
{
print(" " + result(i));
i += 1;
}
print("\n");
}
def findCombination(num: Int,
result: Array[Int],
index: Int,
product: Int): Unit = {
if (product == num)
{
// Display calculated result
printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
var i: Int = 2;
while (i <= num / 2)
{
if (index == 0 || i % result(index - 1) == 0)
{
// Collects resultant value
result(index) = i;
// Find other combination using recursion
findCombination(num, result, index + 1, product * i);
}
i += 1;
}
}
def combination(num: Int): Unit = {
if (num <= 0)
{
return;
}
if (num == 1)
{
print("\n 1 \n");
return;
}
println("\n Given Number : " + num);
// Collect result
var result: Array[Int] = Array.fill[Int](num)(0);
// Test
findCombination(num, result, 0, 1);
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Combinations = new Combinations();
var num: Int = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task.combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task.combination(num);
num = 11;
/*
num = 11
---------------
None
*/
task.combination(num);
}
}
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
// Swift 4 Program
// Generate all the products of a number in which
// each element is divisible by the previous element
class Combinations
{
// Display result
func printSequence(_ result: [Int], _ n: Int)
{
var i: Int = 0;
while (i < n)
{
print(" ", result[i], terminator: "");
i += 1;
}
print(terminator: "\n");
}
func findCombination(_ num: Int,
_ result: inout[Int],
_ index: Int,
_ product: Int)
{
if (product == num)
{
// Display calculated result
self.printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
var i: Int = 2;
while (i <= num / 2)
{
if (index == 0 || i % result[index - 1] == 0)
{
// Collects resultant value
result[index] = i;
// Find other combination using recursion
self.findCombination(num, &result, index + 1, product * i);
}
i += 1;
}
}
func combination(_ num: Int)
{
if (num <= 0)
{
return;
}
if (num == 1)
{
print("\n 1 ");
return;
}
print("\n Given Number : ", num);
// Collect result
var result: [Int] = Array(repeating: 0, count: num);
// Test
self.findCombination(num, &result, 0, 1);
}
}
func main()
{
let task: Combinations = Combinations();
var num: Int = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task.combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task.combination(num);
num = 11;
/*
num = 11
---------------
None
*/
task.combination(num);
}
main();
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
// Kotlin Program
// Generate all the products of a number in which
// each element is divisible by the previous element
class Combinations
{
// Display result
fun printSequence(result: Array < Int > , n: Int): Unit
{
var i: Int = 0;
while (i < n)
{
print(" " + result[i]);
i += 1;
}
print("\n");
}
fun findCombination(num: Int,
result: Array < Int > ,
index: Int, product: Int): Unit
{
if (product == num)
{
// Display calculated result
this.printSequence(result, index);
return;
}
if (index >= num || product > num)
{
// Base case when stop process
return;
}
var i: Int = 2;
while (i <= num / 2)
{
if (index == 0 || i % result[index - 1] == 0)
{
// Collects resultant value
result[index] = i;
// Find other combination using recursion
this.findCombination(num, result, index + 1, product * i);
}
i += 1;
}
}
fun combination(num: Int): Unit
{
if (num <= 0)
{
return;
}
if (num == 1)
{
print("\n 1 \n");
return;
}
println("\n Given Number : " + num);
// Collect result
val result: Array < Int > = Array(num)
{
0
};
// Test
this.findCombination(num, result, 0, 1);
}
}
fun main(args: Array < String > ): Unit
{
val task: Combinations = Combinations();
var num: Int = 56;
/*
num = 56
--------
2 ⤌ 2 ⤌ 14
2 ⤌ 28
---------------
Here 2 % 2 == 0 14 % 2 == 0
28 % 2 == 0
Element divisible previous element
*/
task.combination(num);
num = 32;
/*
num = 32
---------------
2 ⤌ 2 ⤌ 2 ⤌ 2 ⤌ 2
2 ⤌ 2 ⤌ 2 ⤌ 4
2 ⤌ 2 ⤌ 8
2 ⤌ 4 ⤌ 4
2 ⤌ 16
4 ⤌ 8
*/
task.combination(num);
num = 11;
/*
num = 11
---------------
None
*/
task.combination(num);
}
Output
Given Number : 56
2 2 14
2 28
Given Number : 32
2 2 2 2 2
2 2 2 4
2 2 8
2 4 4
2 16
4 8
Given Number : 11
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment