Digit - Product - Sequence - GeeksforGeeks

25 Aug, 2021
Given a number N, the task is to print the sequence up to 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 digits 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++
Java
Python3
C#
PHP
Javascript
// CPP program for Digit Product Sequence#include <bits/stdc++.h>using namespace std; // function to produce and print Digit// Product Sequencevoid 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 single 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 Codeint main(){    // Value of N    int N = 10;     // Calling function    digit_product_Sum(N);    return 0;}
// Java program for Digit Product Sequence // function to produce and print Digit// Product Sequenceimport 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 single 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)>
# 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 single 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 NN = 10; # Calling functiondigit_product_Sum(N); # This Code is contributed# by mits.
// C# program for Digit Product Sequence// function to produce and print Digit// Product Sequenceusing 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 single 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.
<?php// PHP program for Digit// Product Sequence // function to produce// and print Digit// Product Sequencefunction 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 single    // 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 functiondigit_product_Sum($N); // This Code is contributed// by mits. ?>
<script>      // JavaScript program for Digit      // Product Sequence       // function to produce and print Digit      // Product Sequence      function digit_product_Sum(N) {        // Array which store sequence        var a = [...Array(N)];         // Temporary variable to store product        var 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 single digit or        // not if yes then store previous number,        // else store its first value Then for        // every i store value in the array.        for (var i = 1; i <= N; i++)        {          product = parseInt(a[i - 1] / 10);           if (product == 0) product = 1;          else product = a[i - 1] % 10;           var val = parseInt(a[i - 1] / 10);           if (val == 0) val = a[i - 1];           a[i] = a[i - 1] + val * product;        }         // Print sequence        for (var i = 0; i < N; i++)        document.write(a[i] + " ");      }       // Driver Code      // Value of N      var N = 10;             // Calling function      digit_product_Sum(N);       </script>
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 write.geeksforgeeks.org or mail your article to review-team@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. 
Mithun Kumar
rdtank
rs1686740
number-digits
series
Mathematical
School Programming
Mathematical
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Program to find sum of elements in a given array
Program for factorial of a number
Python Dictionary
Arrays in C/C++
Reverse a string in Java
Inheritance in C++
Interfaces in Java