Curzon Numbers

Given an integer N, check whether the given number is a Curzon Number or not.

A number N is said to be a Curzon Number if 2N + 1 is divisible by 2*N + 1.

Example:

Input: N = 5
Output: Yes
Explanation:
2^5 + 1 = 33 and 2*5 + 1 = 11
Since 11 divides 33, so 5 is a curzon number.

Input: N = 10
Output: No
Explanation:
2^10 + 1 = 1025 and 2*10 + 1 = 21
1025 is not divisible by 21, so 10 is not a curzon number.



Approach: The approach is to compute and check if 2N + 1 is divisible by 2*N + 1 or not.

  • First find the value of 2*N + 1
  • Then find the value of 2N + 1
  • Check if the second value is divisible by the first value, then it is a Curzon Number, else not.

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 check if a number
// is a Curzon number or not
void checkIfCurzonNumber(int N)
{
  
    long int powerTerm, productTerm;
  
    // Find 2^N + 1
    powerTerm = pow(2, N) + 1;
  
    // Find 2*N + 1
    productTerm = 2 * N + 1;
  
    // Check for divisibility
    if (powerTerm % productTerm == 0)
        cout << "Yes\n";
    else
        cout << "No\n";
}
  
// Driver code
int main()
{
    long int N = 5;
    checkIfCurzonNumber(N);
  
    N = 10;
    checkIfCurzonNumber(N);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the approach
import java.io.*; 
import java.util.*; 
  
class GFG { 
      
// Function to check if a number
// is a Curzon number or not
static void checkIfCurzonNumber(long N)
    double powerTerm, productTerm;
  
    // Find 2^N + 1
    powerTerm = Math.pow(2, N) + 1;
  
    // Find 2*N + 1
    productTerm = 2 * N + 1;
  
    // Check for divisibility
    if (powerTerm % productTerm == 0)
        System.out.println("Yes");
    else
        System.out.println("No");
  
// Driver code 
public static void main(String[] args) 
    long N = 5;
    checkIfCurzonNumber(N);
      
    N = 10;
    checkIfCurzonNumber(N);
}
  
// This code is contributed by coder001

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of the approach
  
# Function to check if a number
# is a Curzon number or not
def checkIfCurzonNumber(N):
  
    powerTerm, productTerm = 0, 0
  
    # Find 2^N + 1
    powerTerm = pow(2, N) + 1
  
    # Find 2*N + 1
    productTerm = 2 * N + 1
  
    # Check for divisibility
    if (powerTerm % productTerm == 0):
        print("Yes")
    else:
        print("No")
  
# Driver code
if __name__ == '__main__':
      
    N = 5
    checkIfCurzonNumber(N)
  
    N = 10
    checkIfCurzonNumber(N)
  
# This code is contributed by mohit kumar 29

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of the approach
using System;
  
class GFG{
      
// Function to check if a number
// is a curzon number or not
static void checkIfCurzonNumber(long N)
    double powerTerm, productTerm;
  
    // Find 2^N + 1
    powerTerm = Math.Pow(2, N) + 1;
  
    // Find 2*N + 1
    productTerm = 2 * N + 1;
  
    // Check for divisibility
    if (powerTerm % productTerm == 0)
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
  
// Driver code 
static public void Main ()
    long N = 5;
    checkIfCurzonNumber(N);
      
    N = 10;
    checkIfCurzonNumber(N);
}
  
// This code is contributed by shubhamsingh10

chevron_right


Output:

Yes
No

Time complexity: O(log N)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up


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.