Skip to content
Related Articles

Related Articles

Improve Article
Centered Square Number
  • Last Updated : 30 Mar, 2020

Given a number n , the task is to find nth Centered Square Number.

Centered Square Number is a centered figurate number that gives the number of dots in a square with a dot in the center and all other dots surrounding the center dot in successive square layers. Nth Centered square number can be calculated by using formula n2 + (n-1)2.

Centered-Square-Number

Examples :

Input : n = 2
Output : 5

Input : n = 9
Output : 145
  1. Finding n-th Centered Square Number
    If we take a closer look, we can notice that the n-th Centered Square Number can be seen as the sum of two consecutive square numbers (1 dot, 4 dots, 9 dots, 16 dots, etc).



    We can find n-th Centered Square Number using below formula.

    n-th Centered Square Number = n2 + (n-1)2

    Below is the implementation :

    C++




    // C++ program to find nth
    // Centered square number.
    #include <bits/stdc++.h>
      
    using namespace std;
      
    // Function to calculate Centered
    // square number function
    int centered_square_num(int n)
    {
        // Formula to calculate nth
        // Centered square number
        return n * n + ((n - 1) * (n - 1));
    }
      
    // Driver Code
    int main()
    {
        int n = 7;
        cout << n << "th Centered square number: ";
        cout << centered_square_num(n);
        return 0;
    }

    Java




    // Java program to find nth Centered square
    // number
    import java.io.*;
      
    class GFG {
      
        // Function to calculate Centered
        // square number function
        static int centered_square_num(int n)
        {
            // Formula to calculate nth
            // Centered square number
            return n * n + ((n - 1) * (n - 1));
        }
          
        // Driver Code
        public static void main (String[] args) 
        {
            int n = 7;
            System.out.print( n + "th Centered"
                           + " square number: "
                     + centered_square_num(n));
        }
    }
      
    // This code is contributed by anuj_67.

    Python3




    # Python program to find nth
    # Centered square number.
      
      
    # Function to calculate Centered
    # square number function
    def centered_square_num(n):
      
        # Formula to calculate nth
        # Centered square number
        return n * n + ((n - 1) * (n - 1))
      
      
    # Driver Code
    n = 7
    print("%sth Centered square number: " %n,
                      centered_square_num(n))
         

    C#




    // C# program to find nth
    // Centered square number.
    using System;
      
    public class GFG {
      
        // Function to calculate Centered
        // square number function
        static int centered_square_num(int n)
        {
            // Formula to calculate nth
            // Centered square number
            return n * n + ((n - 1) * (n - 1));
        }
          
        // Driver Code
      
        static public void Main (){
        int n = 7;
        Console.WriteLine( n + "th Centered"
                        + " square number: "
                   + centered_square_num(n));
        }
    }
      
    // This code is contributed by anuj_67.

    PHP




    <?php
    // PHP program to find nth
    // Centered square number
      
    // Function to calculate Centered
    // square number function
    function centered_square_num( $n)
    {
        // Formula to calculate nth
        // Centered square number
        return $n * $n + (($n - 1) * 
                          ($n - 1));
    }
      
    // Driver Code
    $n = 7;
    echo $n , "th Centered square number: ";
    echo centered_square_num($n);
      
    // This code is contributed by anuj_67.
    ?>


    Output :
    7th Centered square number: 85
    
  2. Check if N is centred-square-number or not:
    • The first few centered-square-number numbers are:

      1,5,13,25,41,61,85,113,145,181,…………

    • Since the nth centered-square-number number is given by
      H(n) = n * n + ((n - 1) * (n - 1))
    • The formula indicates that the n-th centred-square-number number depends quadratically on n. Therefore, try to find the positive integral root of N = H(n) equation.
      H(n) = nth centered-square-number number
      N = Given Number
      
      Solve for n:
      H(n) = N
      n * n + ((n - 1) * (n - 1)) = N
      
      Applying Shridharacharya Formula
      The positive root of equation (i)
      n = (9 + sqrt(36*N+45))/18; 
      
    • After obtaining n, check if it is an integer or not. n is an integer if n – floor(n) is 0.

    Below is the implementation of the above approach:

    CPP




    #include <bits/stdc++.h>
    using namespace std;
      
    bool centeredSquare_number(int N) 
    {     
        float n = (9 + sqrt(36*N+45))/18;  
        return (n - (int) n) == 0; 
      
    int main() 
        int i = 13;
        cout<<centeredSquare_number(i);
        return 0; 

    Java




    // Java Code implementation of the above approach
    class GFG {
          
        static int centeredSquare_number(int N) 
        {     
            float n = (9 + (float)Math.sqrt(36*N+45))/18;  
            if (n - (int) n == 0)
                return 1;
            else
                return 0;
        
          
        // Driver code
        public static void main (String[] args) 
        
            int i = 13;
            System.out.println(centeredSquare_number(i));
        
          
    }
      
    // This code is contributed by Yash_R

    Python3




    # Python3 implementation of the above approach
    from math import sqrt
      
    def centeredSquare_number(N) : 
      
        n = (9 + sqrt(36 * N + 45))/18
        if (n - int(n)) == 0 :
            return 1
        else :
            return 0
      
    # Driver Code
    if __name__ == "__main__"
      
        i = 13;
        print(centeredSquare_number(i));
      
    # This code is contributed by Yash_R

    C#




    // C# Code implementation of the above approach
    using System;
      
    class GFG {
          
        static int centeredSquare_number(int N) 
        {     
            float n = (9 + (float)Math.Sqrt(36 * N + 45))/18;  
            if (n - (int) n == 0)
                return 1;
            else
                return 0;
        
          
        // Driver code
        public static void Main (String[] args) 
        
            int i = 13;
            Console.WriteLine(centeredSquare_number(i));
        
          
    }
      
    // This code is contributed by Yash_R
    Output:
    0
    

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

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :