Program to find Cullen Number

A Cullen Number is a number of the form is 2n * n + 1 where n is an integer. The first few Cullen numbers are 1, 3, 9, 25, 65, 161, 385, 897, 2049, 4609 . . . . . .
Examples:

Input : n = 4
Output :65

Input : n = 0
Output : 1

Input : n = 6
Output : 161

Below is C++ implementation of formula. We use bitwise left-shift operator to find 2n, then multiply the result with n and finally returns (1 << n)*n + 1.

// C++ program to find Cullen number
#include<bits/stdc++.h>
using namespace std;

// function to find n'th cullen number
unsigned findCullen(unsigned n)
{
    return (1 << n) * n + 1;
}

// Driver code
int main()
{
    int n = 2;
    cout << findCullen(n);
    return 0;
}

Output:

9

Properties of Cullen Numbers:

  1. Most of the Cullen Numbers are composite numbers.
  2. n’th Cullen number is divisible by p = 2n – 1 if p is a prime number of the form 8k – 3.

Reference: https://en.wikipedia.org/wiki/Cullen_number

This article is contributed by DANISH_RAZA. 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 write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

GATE CS Corner    Company Wise Coding Practice





Writing code in comment? Please use ide.geeksforgeeks.org, generate link and share the link here.