Open In App

Increasing sequence with given GCD

Last Updated : 23 Jun, 2022
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report

Given two integers n and g, the task is to generate an increasing sequence of n integers such that:  

  1. The gcd of all the elements of the sequence is g.
  2. And, the sum of all the elements is the minimum among all possible sequences.


Examples: 

Input: n = 6, g = 5 
Output: 5 10 15 20 25 30


Input: n = 5, g = 3 
Output: 3 6 9 12 15 

Approach: The sum of the sequence will be minimum when the sequence will consist of the elements: 
g, 2 * g, 3 * g, 4 * g, ....., n * g.


Below is the implementation of the above approach: 

C++
// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;

// Function to print the required sequence
void generateSequence(int n, int g)
{
    for (int i = 1; i <= n; i++)
        cout << i * g << " ";
}

// Driver Code
int main()
{
    int n = 6, g = 5;
    generateSequence(n, g);

    return 0;
}
Java
// Java implementation of the approach
class GFG
{

    // Function to print the required sequence 
    static void generateSequence(int n, int g) 
    { 
        for (int i = 1; i <= n; i++) 
            System.out.print(i * g + " ");; 
    } 
    
    // Driver Code
    public static void main(String []args)
    {
        int n = 6, g = 5; 
        generateSequence(n, g); 
    
    }
}

// This code is contributed by Rituraj Jain
Python3
# Python3 implementation of the approach

# Function to print the required sequence 
def generateSequence(n, g): 

    for i in range(1, n + 1): 
        print(i * g, end = " ")

# Driver Code
if __name__ == "__main__":

    n, g = 6, 5
    generateSequence(n, g) 

# This code is contributed by Rituraj Jain
C#
// C# implementation of the approach
using System ;

class GFG
{

    // Function to print the required sequence 
    static void generateSequence(int n, int g) 
    { 
        for (int i = 1; i <= n; i++) 
            Console.Write(i * g + " "); 
    } 
    
    // Driver Code
    public static void Main()
    {
        int n = 6, g = 5; 
        generateSequence(n, g); 
    }
}

// This code is contributed by Ryuga
PHP
<?php 
// PHP implementation of the approach

// Function to print the required sequence
function generateSequence($n, $g)
{
    for ($i = 1; $i <= $n; $i++)
        echo $i * $g . " ";
}

// Driver Code
$n = 6;
$g = 5;
generateSequence($n, $g);

// This code is contributed by ita_c
?>
JavaScript
<script>

// Javascript implementation of the approach

// Function to print the required sequence
function generateSequence(n, g)
{
    for (var i = 1; i <= n; i++)
    {
        document.write(i*g+" ");
    }
}

// Driver Code
var n = 6, g = 5;
generateSequence(n, g);

</script>  

Output: 
5 10 15 20 25 30

 

Time Complexity: O(n)

Auxiliary Space: O(1)


Next Article

Similar Reads