# Find N distinct integers with GCD of sequence as 1 and GCD of each pair greater than 1

• Last Updated : 15 Sep, 2022

Given an integer N, the task is to find a sequence of N distinct positive integers such that the Greatest Common Divisor of the sequence is 1 and GCD of all possible pairs of elements is greater than 1.

Input: N = 4
Output: 84 60 105 70
Explanation: The GCD(84, 60, 105, 70) is 1 and the GCD of all possible pair of elements i.e, {(84, 60), (84, 105), (84, 70), (60, 105), (60, 70), (105, 70)} is greater than 1.

Input: N = 3
Output: 6 10 15

Approach: This problem can be solved by using the Set Data Structure. The idea is to choose three integers of the form (a*b, b*c, c*a), as GCD of the three is 1 and pairwise GCD of the three is always greater than 1. Further, simply add the multiples of the three integers until the sequence contains the required number of integers. A set of integers of the form (a*b, b*c, c*a) is (6, 10, 15). Therefore, add multiples of 6, 10, and 15 to the sequence and print the required number of integers.

Below is the implementation of the above approach:

## C++

 `// C++ program for above approach` `#include ` `using` `namespace` `std;`   `// Function to find the sequence of` `// distinct integers with GCD equal` `// to 1 and every pair has GCD > 1.` `void` `findSequence(``int` `N)` `{` `    ``// Special case` `    ``if` `(N == 3) {` `        ``cout << ``"6 10 15"` `<< endl;` `        ``return``;` `    ``}`   `    ``// Set to avoid duplicates` `    ``set<``int``> s;` `    ``s.insert(6);` `    ``s.insert(10);` `    ``s.insert(15);`   `    ``// Add multiples of 6` `    ``for` `(``int` `i = 12; i <= 10000; i += 6)` `        ``s.insert(i);`   `    ``// Add multiples of 10` `    ``for` `(``int` `i = 20; i <= 10000; i += 10)` `        ``s.insert(i);`   `    ``// Add multiples of 15` `    ``for` `(``int` `i = 30; i <= 10000; i += 15)` `        ``s.insert(i);` `    `  `      ``int` `cnt = 0;`   `    ``// Print first N numbers of set` `    ``for` `(``int` `x : s) {` `        ``cout << x << ``" "``;` `        ``cnt++;` `        ``if` `(cnt == N) {` `            ``break``;` `        ``}` `    ``}` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `N = 3;` `    ``findSequence(N);`   `    ``return` `0;` `}`

## Java

 `// Java program for above approach` `import` `java.util.*;`   `class` `GFG{`   `// Function to find the sequence of` `// distinct integers with GCD equal` `// to 1 and every pair has GCD > 1.` `static` `void` `findSequence(``int` `N)` `{` `    `  `    ``// Special case` `    ``if` `(N == ``3``) ` `    ``{` `        ``System.out.println(``"6 10 15"``);` `        ``return``;` `    ``}`   `    ``// Set to avoid duplicates` `    ``Set s = ``new` `HashSet();` `    ``s.add(``6``);` `    ``s.add(``10``);` `    ``s.add(``15``);`   `    ``// Add multiples of 6` `    ``for``(``int` `i = ``12``; i <= ``10000``; i += ``6``)` `        ``s.add(i);`   `    ``// Add multiples of 10` `    ``for``(``int` `i = ``20``; i <= ``10000``; i += ``10``)` `        ``s.add(i);`   `    ``// Add multiples of 15` `    ``for``(``int` `i = ``30``; i <= ``10000``; i += ``15``)` `        ``s.add(i);`   `    ``int` `cnt = ``0``;`   `    ``// Print first N numbers of set` `    ``for``(Integer x : s)` `    ``{` `        ``System.out.print(x + ``" "``);` `        ``cnt++;` `        `  `        ``if` `(cnt == N) ` `        ``{` `            ``break``;` `        ``}` `    ``}` `}`   `// Driver Code` `public` `static` `void` `main(String[] args)` `{` `    ``int` `N = ``3``;` `    `  `    ``findSequence(N);` `}` `}`   `// This code is contributed by Potta Lokesh`

## Python3

 `# python program for above approach`   `# Function to find the sequence of` `# distinct integers with GCD equal` `# to 1 and every pair has GCD > 1.` `def` `findSequence(N):`   `    ``# Special case` `    ``if` `(N ``=``=` `3``):` `        ``print``(``"6 10 15"``)` `        ``return`   `    ``# Set to avoid duplicates` `    ``s ``=` `set``()` `    ``s.add(``6``)` `    ``s.add(``10``)` `    ``s.add(``15``)`   `    ``# Add multiples of 6` `    ``for` `i ``in` `range``(``12``, ``10001``, ``6``):` `        ``s.add(i)`   `    ``# Add multiples of 10` `    ``for` `i ``in` `range``(``20``, ``10001``, ``10``):` `        ``s.add(i)`   `    ``# Add multiples of 15` `    ``for` `i ``in` `range``(``30``, ``10001``, ``15``):` `        ``s.add(i)`   `    ``cnt ``=` `0`   `    ``# Print first N numbers of set` `    ``for` `x ``in` `s:` `        ``print``(x, end``=``" "``)` `        ``cnt ``+``=` `1` `        ``if` `(cnt ``=``=` `N):` `            ``break`   `# Driver Code` `if` `__name__ ``=``=` `"__main__"``:`   `    ``N ``=` `3` `    ``findSequence(N)`   `# This code is contributed by rakeshsahni`

## C#

 `// C# program for above approach` `using` `System;` `using` `System.Collections.Generic;` `class` `GFG {`   `    ``// Function to find the sequence of` `    ``// distinct integers with GCD equal` `    ``// to 1 and every pair has GCD > 1.` `    ``static` `void` `findSequence(``int` `N)` `    ``{`   `        ``// Special case` `        ``if` `(N == 3) {` `            ``Console.WriteLine(``"6 10 15"``);` `            ``return``;` `        ``}`   `        ``// Set to avoid duplicates` `        ``HashSet<``int``> s = ``new` `HashSet<``int``>();` `        ``s.Add(6);` `        ``s.Add(10);` `        ``s.Add(15);`   `        ``// Add multiples of 6` `        ``for` `(``int` `i = 12; i <= 10000; i += 6)` `            ``s.Add(i);`   `        ``// Add multiples of 10` `        ``for` `(``int` `i = 20; i <= 10000; i += 10)` `            ``s.Add(i);`   `        ``// Add multiples of 15` `        ``for` `(``int` `i = 30; i <= 10000; i += 15)` `            ``s.Add(i);`   `        ``int` `cnt = 0;`   `        ``// Print first N numbers of set` `        ``foreach``(``int` `x ``in` `s)` `        ``{` `            ``Console.Write(x + ``" "``);` `            ``cnt++;`   `            ``if` `(cnt == N) {` `                ``break``;` `            ``}` `        ``}` `    ``}`   `    ``// Driver Code` `    ``public` `static` `void` `Main(String[] args)` `    ``{` `        ``int` `N = 3;`   `        ``findSequence(N);` `    ``}` `}`   `// This code is contributed by ukasp.`

## Javascript

 ``

Output

`6 10 15`

Time Complexity: O(N*log N)
Auxiliary Space: O(N)

My Personal Notes arrow_drop_up
Recommended Articles
Page :