# Find all numbers up to N which are both Pentagonal and Hexagonal

Given an integer **N**, the task is to find all numbers up to **N**, which are both Pentagonal as well as Hexagonal.**Example:**

Input:N = 1000Output:1Input:N = 100000Output:1, 40755

**Approach:**

- To solve the problem, we are generating all pentagonal numbers up to
**N**and check if those are hexagonal numbers or not. - Formula to calculate
**i**:^{th}Pentagonal Number

i * ( 3 * i – 1 ) / 2

- To check if a pentagonal number, say
**pn**, is a hexagonal number or not:

( 1 + sqrt(8 * pn + 1 ) ) / 4needs to be a Natural number

Below is the implementation of the above approach:

## C++

`// C++ Program of the above approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to print numbers upto N` `// which are both pentagonal as well` `// as hexagonal numbers` `void` `pen_hex(` `long` `long` `n)` `{` ` ` `long` `long` `pn = 1;` ` ` `for` `(` `long` `long` `int` `i = 1;; i++) {` ` ` `// Calculate i-th pentagonal number` ` ` `pn = i * (3 * i - 1) / 2;` ` ` `if` `(pn > n)` ` ` `break` `;` ` ` `// Check if the pentagonal number` ` ` `// pn is hexagonal or not` ` ` `long` `double` `seqNum` ` ` `= (1 + ` `sqrt` `(8 * pn + 1)) / 4;` ` ` `if` `(seqNum == ` `long` `(seqNum))` ` ` `cout << pn << ` `", "` `;` ` ` `}` `}` `// Driver Program` `int` `main()` `{` ` ` `long` `long` `int` `N = 1000000;` ` ` `pen_hex(N);` ` ` `return` `0;` `}` |

## Java

`// Java program of the above approach` `import` `java.util.*;` `class` `GFG{` `// Function to print numbers upto N` `// which are both pentagonal as well` `// as hexagonal numbers` `static` `void` `pen_hex(` `long` `n)` `{` ` ` `long` `pn = ` `1` `;` ` ` `for` `(` `long` `i = ` `1` `; i < n; i++)` ` ` `{` ` ` ` ` `// Calculate i-th pentagonal number` ` ` `pn = i * (` `3` `* i - ` `1` `) / ` `2` `;` ` ` `if` `(pn > n)` ` ` `break` `;` ` ` `// Check if the pentagonal number` ` ` `// pn is hexagonal or not` ` ` `double` `seqNum = (` `1` `+ Math.sqrt(` ` ` `8` `* pn + ` `1` `)) / ` `4` `;` ` ` `if` `(seqNum == (` `long` `)seqNum)` ` ` `System.out.print(pn + ` `", "` `);` ` ` `}` `}` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `long` `N = ` `1000000` `;` ` ` `pen_hex(N);` `}` `}` `// This code is contributed by offbeat` |

## Python3

`# Python3 program of the above approach` `import` `math` `# Function to print numbers upto N` `# which are both pentagonal as well` `# as hexagonal numbers` `def` `pen_hex(n):` ` ` `pn ` `=` `1` ` ` `for` `i ` `in` `range` `(` `1` `, N):` ` ` `# Calculate i-th pentagonal number` ` ` `pn ` `=` `(` `int` `)(i ` `*` `(` `3` `*` `i ` `-` `1` `) ` `/` `2` `)` ` ` `if` `(pn > n):` ` ` `break` ` ` `# Check if the pentagonal number` ` ` `# pn is hexagonal or not` ` ` `seqNum ` `=` `(` `1` `+` `math.sqrt(` `8` `*` `pn ` `+` `1` `)) ` `/` `4` ` ` `if` `(seqNum ` `=` `=` `(` `int` `)(seqNum)):` ` ` `print` `(pn, end ` `=` `", "` `)` `# Driver Code` `N ` `=` `1000000` `pen_hex(N)` `# This code is contributed by divyeshrabadiya07` |

## C#

`// C# program of the above approach ` `using` `System;` `using` `System.Collections.Generic;` `class` `GFG{ ` ` ` `// Function to print numbers upto N` `// which are both pentagonal as well` `// as hexagonal numbers` `static` `void` `pen_hex(` `long` `n)` `{` ` ` `long` `pn = 1;` ` ` `for` `(` `long` `i = 1;; i++)` ` ` `{` ` ` ` ` `// Calculate i-th pentagonal number` ` ` `pn = i * (3 * i - 1) / 2;` ` ` `if` `(pn > n)` ` ` `break` `;` ` ` `// Check if the pentagonal number` ` ` `// pn is hexagonal or not` ` ` `double` `seqNum = (1 + Math.Sqrt(` ` ` `8 * pn + 1)) / 4;` ` ` `if` `(seqNum == (` `long` `)(seqNum))` ` ` `{` ` ` `Console.Write(pn + ` `", "` `);` ` ` `}` ` ` `}` `}` ` ` `// Driver Code ` `public` `static` `void` `Main (` `string` `[] args)` `{ ` ` ` `long` `N = 1000000;` ` ` ` ` `pen_hex(N);` `} ` `}` `// This code is contributed by rutvik_56` |

## Javascript

`<script>` `// javascript program of the above approach` ` ` `// Function to print numbers upto N` `// which are both pentagonal as well` `// as hexagonal numbers` `function` `pen_hex(n)` `{` ` ` `var` `pn = 1;` ` ` `for` `(i = 1; i < n; i++)` ` ` `{` ` ` ` ` `// Calculate i-th pentagonal number` ` ` `pn = parseInt(i * (3 * i - 1) / 2);` ` ` `if` `(pn > n)` ` ` `break` `;` ` ` `// Check if the pentagonal number` ` ` `// pn is hexagonal or not` ` ` `var` `seqNum = (1 + Math.sqrt(` ` ` `8 * pn + 1)) / 4;` ` ` `if` `(seqNum == parseInt(seqNum))` ` ` `document.write(pn + ` `", "` `);` ` ` `}` `}` `// Driver code` `var` `N = 1000000;` `pen_hex(N);` `// This code is contributed by Amit Katiyar` `</script>` |

**Output:**

1, 40755,

**Time Complexity:** O(N) **Auxiliary space:** O(1)