Digit – Product – Sequence

Given a number N, the task is to print the sequence upto N. The sequence is : 1, 2, 4, 8, 16, 22, 26, 38, 62, 74, 102, 104, 108, 116, 122, 126, 138, 162 and so on… This sequence is known as Digit – Product – Sequence. In this series, we take every non zero digit of the number, multiply them and add the product to the number itself.

Examples:

Input : N = 10
Output :1 2 4 8 16 22 26 38 62 74

Input : N = 7
Output :1 2 4 8 16 22 26

Explanation:

1 + (1 * 1)  = 1 + 1  = 2
2 + (2 * 1)  = 2 + 2  = 4
4 + (4 * 1)  = 4 + 4  = 8
8 + (8 * 1)  = 8 + 8  = 16
16 + (1 * 6) = 16 + 6 = 22
22 + (2 * 2) = 22 + 4 = 26
26 + (2 * 6) = 26 + 12 = 38
38 + (3 * 8) = 38 + 24 = 62
62 + (6 * 2) = 62 + 12 = 74
and so on...

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program for Digit Product Sequence
#include <bits/stdc++.h>
using namespace std;
  
// function to produce and print Digit
// Product Sequence
void digit_product_Sum(int N)
{
    // Array which store sequence
    int a[N];
  
    // Temporary variable to store product
    int product = 1;
  
    // Initialize first element of the 
    // array with 1
    a[0] = 1;
  
    // Run a loop from 1 to N. Check if 
    // previous number is single digit or
    // not. If yes then product = 1 else
    // take modulus. Then again check if 
    // previous number is sigle digit or 
    // not if yes then store previous number,
    // else store its first value Then for
    // every i store value in the array.
    for (int i = 1; i <= N; i++) {
        product = a[i - 1] / 10;
      
        if (product == 0)
            product = 1;
        else
            product = a[i - 1] % 10;
      
        int val = a[i - 1] / 10;
      
        if (val == 0)
            val = a[i - 1];
      
        a[i] = a[i - 1] + (val * product);
    }
  
    // Print sequence
    for (int i = 0; i < N; i++)
        cout << a[i] << " ";
}
  
// Driver Code
int main()
{
    // Value of N
    int N = 10;
  
    // Calling function
    digit_product_Sum(N);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program for Digit Product Sequence
  
// function to produce and print Digit
// Product Sequence
import java.lang.*;
import java.io.*;
  
class GFG
{
    public static void digit_product_Sum(int N)
    {
        // Array which store sequence
        int a[] = new int[N+1] ;
  
        // Temporary variable to store product
        int product = 1;
  
        // Initialize first element of the
        // array with 1
        a[0] = 1;
  
        // Run a loop from 1 to N. Check if
        // previous number is single digit or
        // not. If yes then product = 1 else
        // take modulus. Then again check if
        // previous number is sigle digit or
        // not if yes then store previous number,
        // else store its first value Then for
        // every i store value in the array.
        for (int i = 1; i <= N; i++)
        {
            product = a[i - 1] / 10;
  
            if (product == 0)
                product = 1;
            else
                product = a[i - 1] % 10;
  
            int val = a[i - 1] / 10;
  
            if (val == 0)
                val = a[i - 1];
  
            a[i] = a[i - 1] + (val * product);
        }
  
        // Print sequence
        for (int i = 0; i < N; i++)
            System.out.print(a[i] + " ");
    }
  
// Driver Code
    public static void main(String[] args)
    {
        // Value of N
        int N = 10;
  
        // Calling function
        digit_product_Sum(N);
  
    }
}
// Code contributed by Mohit Gupta_OMG <(0_o)>

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program for 
# Digit Product Sequence
  
# function to produce and 
# print Digit Product Sequence
  
def digit_product_Sum(N):
      
    # Array which store sequence
    a = [0] * (N + 1);
      
    # Temporary variable
    # to store product
    product = 1;
      
    # Initialize first element 
    # of the array with 1
    a[0] = 1;
      
    # Run a loop from 1 to N. 
    # Check if previous number 
    # is single digit or not. 
    # If yes then product = 1 
    # else take modulus. Then 
    # again check if previous 
    # number is sigle digit or
    # not if yes then store 
    # previous number, else store 
    # its first value Then for
    # every i store value in 
    # the array.
    for i in range(1, N + 1):
        product = int(a[i - 1] / 10);
        if (product == 0):
            product = 1;
        else:
            product = a[i - 1] % 10;
          
        val = int(a[i - 1] / 10);
        if (val == 0):
            val = a[i - 1];
        a[i] = a[i - 1] + (val * product);
      
    # Print sequence
    for i in range(N):
        print(a[i], end = " ");
          
# Driver Code
  
# Value of N
N = 10;
  
# Calling function
digit_product_Sum(N);
  
# This Code is contributed
# by mits.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for Digit Product Sequence
// function to produce and print Digit
// Product Sequence
using System;
  
class GFG
{
    public static void digit_product_Sum(int N)
    {
        // Array which store sequence
        int []a = new int[N + 1] ;
  
        // Temporary variable to store product
        int product = 1;
  
        // Initialize first element of the
        // array with 1
        a[0] = 1;
  
        // Run a loop from 1 to N. Check if
        // previous number is single digit or
        // not. If yes then product = 1 else
        // take modulus. Then again check if
        // previous number is sigle digit or
        // not if yes then store previous number,
        // else store its first value Then for
        // every i store value in the array.
        for (int i = 1; i <= N; i++)
        {
            product = a[i - 1] / 10;
  
            if (product == 0)
                product = 1;
            else
                product = a[i - 1] % 10;
  
            int val = a[i - 1] / 10;
  
            if (val == 0)
                val = a[i - 1];
  
            a[i] = a[i - 1] + (val * product);
        }
  
        // Print sequence
        for (int i = 0; i < N; i++)
        Console.Write(a[i] + " ");
    }
  
    // Driver Code
    public static void Main()
    {
        // Value of N
        int N = 10;
  
        // Calling function
        digit_product_Sum(N);
  
    }
}
// This Code is contributed by vt_m.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program for Digit 
// Product Sequence
  
// function to produce 
// and print Digit
// Product Sequence
function digit_product_Sum($N)
{
    // Array which 
    // store sequence
    $a = array_fill(0, $N, 0);
  
    // Temporary variable
    // to store product
    $product = 1;
  
    // Initialize first 
    // element of the 
    // array with 1
    $a[0] = 1;
  
    // Run a loop from 1 to
    // N. Check if previous 
    // number is single digit 
    // or not. If yes then 
    // product = 1 else take
    // modulus. Then again check 
    // if previous number is sigle 
    // digit or not if yes then 
    // store previous number,
    // else store its first value 
    // Then for every i store value
    // in the array.
    for ($i = 1; $i <= $N; $i++) 
    {
        $product = (int)($a[$i - 1] / 10);
      
        if ($product == 0)
            $product = 1;
        else
            $product = $a[$i - 1] % 10;
      
        $val = (int)($a[$i - 1] / 10);
      
        if ($val == 0)
            $val = $a[$i - 1];
      
        $a[$i] = $a[$i - 1] + 
                ($val * $product);
    }
  
    // Print sequence
    for ($i = 0; $i < $N; $i++)
        echo $a[$i]." ";
}
  
// Driver Code
  
// Value of N
$N = 10;
  
// Calling function
digit_product_Sum($N);
  
// This Code is contributed
// by mits.
  
?>

chevron_right



Output:

1 2 4 8 16 22 26 38 62 74

This article is contributed by Ayush Saxena. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up

Improved By : Mithun Kumar