A Carol number is an integer of the form 4n – 2(n+1) – 1. An equivalent formula is (2n-1)2 – 2.
An Interesting Property :
For n > 2, the binary representation of the n-th Carol number is n-2 consecutive one’s, a single zero in the middle, and n + 1 more consecutive one’s. Example, n = 4 carol number is 223 and binary of 223 is 11011111, here n-2 = 4-2 = 2 consecutive ones in starting then single 0 in middle and then n + 1 = 4 + 1 = 5 consecutive ones after it.
Given a number n, the task is to find the nth Carol Number. First, few carol numbers are -1, 7, 47, 223, 959… etc.
Input : n = 2
Output: 7
Input : n = 4
Output: 223
C++
#include <bits/stdc++.h>
using namespace std;
int carol( int n)
{
int result = pow (2, n) - 1;
return result * result - 2;
}
int main()
{
int n = 4;
cout << carol(n);
return 0;
}
|
Python3
def carol(n):
result = ( 2 * * n) - 1
return result * result - 2
n = 4
print (carol(n))
|
Java
class GFG {
static int carol( int n)
{
double tmp = Math.pow( 2 , n) - 1 ;
return ( int )tmp;
}
public static void main(String[] args)
{
int n = 4 ;
System.out.println(carol(n));
}
}
|
C#
using System;
class GFG {
static int carol( int n)
{
int result = ( int )Math.Pow(2, n) - 1;
return result * result - 2;
}
public static void Main()
{
int n = 4;
Console.WriteLine(carol(n));
}
}
|
PHP
<?php
function carol( $n )
{
$result = pow(2, $n ) - 1;
return $result * $result - 2;
}
$n = 4;
echo carol( $n );
?>
|
Javascript
<script>
function carol(n)
{
let result = Math.pow(2, n) - 1;
return result * result - 2;
}
let n = 4;
document.write(carol(n));
</script>
|
Time complexity: O(log n) , for pow function