Increasing sequence with given GCD

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 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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


PHP

Output:

5 10 15 20 25 30


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

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 Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.