Given a number made of single digits, find its square. It may be assumed that the single digits are 3, 6 and 9. Numbers can be very large i.e. can exceed long long int.

Examples:

Input : 33 66 99 Output : Square of 33 is : 1089 Square of 66 is : 4356 Square of 99 is : 9801 Input : 333 666 999 Output : Square of 333 is : 110889 Square of 666 is : 443556 Square of 999 is : 998001

**Method 1 (Writing as multiples of 1111…1)**

An interesting fact is, every such number can be represented as a multiple of 1111…1. For example, 33333 = 3 * 11111. Squares of 11, 111, 1111, 11111 … are 121, 12321, 1234321, 123454321, … respectively. So a simple solution is find square of 111…11 then multiply the result with 3 or 6 or 9 (We can use multiplication with large number).

**Method 2 (Using digit patterns)**

**For 333….333** Count the no. of digits and print in the below manner:

Suppose no. of digit is n then write the n-1 times 1 and then write one time 0 and then write n-1 time 8 and in last write 9.

Example :

{ 3333 } = 11108889

**For 666….666** Count the no. of digits and print in the below manner:

Suppose no of digit is n then write the n-1 times 4 and then write one time 3 and then write n-1 time 5 and in last write 6.

Example :

{ 6666 } = 44435556

**For 999….999** Count the no. of digits and print in the below manner:

Suppose no of digit is n then write the n-1 times 9 and then write one time 8 and then write n-1 time 0 and in last write 1.

Example :

{ 9999 } = 99980001

## CPP

[sourcecode language=”CPP”]

// C++ program to find square of

// these large numbers

#include <iostream>

using namespace std;

// Function to find the square of

// 333…333, 666…666 and 999…999

string find_Square_369(string num)

{

char a, b, c, d;

// if the number is 333…333

if (num[0] == ‘3’)

a = ‘1’, b = ‘0’, c = ‘8’, d = ‘9’;

// if the number is 666…666

else if (num[0] == ‘6’)

a = ‘4’, b = ‘3’, c = ‘5’, d = ‘6’;

// if the number is 999…999

else

a = ‘9’, b = ‘8’, c = ‘0’, d = ‘1’;

// variable for hold result

string result = "";

// find the no of digit

int size = num.size();

// add size-1 time a in result

for (int i = 1; i < num.size(); i++)

result += a;

// add one time b in result

result += b;

// add size-1 time c in result

for (int i = 1; i < num.size(); i++)

result += c;

// add one time d in result

result += d;

// return result

return result;

}

// Drivers code

int main()

{

string num_3, num_6, num_9;

num_3 = "3333";

num_6 = "6666";

num_9 = "9999";

string result = "";

// find square of 33..33

result = find_Square_369(num_3);

cout << "Square of " << num_3 << " is : " << result << endl;

// find square of 66..66

result = find_Square_369(num_6);

cout << "Square of " << num_6 << " is : " << result << endl;

// find square of 66..66

result = find_Square_369(num_9);

cout << "Square of " << num_9 << " is : " << result << endl;

return 0;

}

[/sourcecode]

## Java

[sourcecode language=”Java”]

// Java program to find square of

// these large numbers

class GFG {

// Function to find the square of

// 333…333, 666…666 and 999…999

static String find_Square_369(String num)

{

char a, b, c, d;

// if the number is 333…333

if (num.charAt(0) == ‘3’)

{a = ‘1’; b = ‘0’; c = ‘8’; d = ‘9’;}

// if the number is 666…666

else if (num.charAt(0) == ‘6’)

{a = ‘4’; b = ‘3’; c = ‘5’; d = ‘6’;}

// if the number is 999…999

else

{a = ‘9’; b = ‘8’; c = ‘0’; d = ‘1’;}

// variable for hold result

String result = "";

// find the no of digit

int size = num.length();

// add size-1 time a in result

for (int i = 1; i < size; i++)

result += a;

// add one time b in result

result += b;

// add size-1 time c in result

for (int i = 1; i < size; i++)

result += c;

// add one time d in result

result += d;

// return result

return result;

}

// Drivers code

public static void main(String[] args)

{

String num_3, num_6, num_9;

num_3 = "3333";

num_6 = "6666";

num_9 = "9999";

String result = "";

// find square of 33..33

result = find_Square_369(num_3);

System.out.println("Square of " + num_3

+ " is : " + result);

// find square of 66..66

result = find_Square_369(num_6);

System.out.println("Square of " + num_9

+ " is : " + result);

// find square of 66..66

result = find_Square_369(num_9);

System.out.println("Square of " + num_9

+ " is : " + result);

}

}

// This code is contributed by Smitha.

[/sourcecode]

## Python 3

[sourcecode language=”Python3″]

# Pyhton 3 program to find square of

# these large numbers

# Function to find the square of

# 333…333, 666…666 and 999…999

def find_Square_369(num):

# if the number is 333…333

if (num[0] == ‘3’):

a = ‘1’

b = ‘0’

c = ‘8’

d = ‘9’

# if the number is 666…666

elif (num[0] == ‘6’):

a = ‘4’

b = ‘3’

c = ‘5’

d = ‘6’

# if the number is 999…999

else:

a = ‘9’

b = ‘8’

c = ‘0’

d = ‘1’

# variable for hold result

result = ""

# find the no of digit

size = len(num)

# add size-1 time a in result

for i in range(1, size):

result += a

# add one time b in result

result += b

# add size-1 time c in result

for i in range(1, size):

result += c

# add one time d in result

result += d

# return result

return result

# Drivers code

# Your Python 3 Code

num_3 = "3333"

num_6 = "6666"

num_9 = "9999"

result = ""

# find square of 33..33

result = find_Square_369(num_3)

print("Square of " + num_3 + " is : "

+ result);

# find square of 66..66

result = find_Square_369(num_6)

print("Square of " + num_6 + " is : "

+ result);

# find square of 66..66

result = find_Square_369(num_9)

print("Square of " + num_9 + " is : "

+ result);

# This code is contributed by Smitha

[/sourcecode]

## C#

[sourcecode language=”CSHARP”]

// C# program to find square of

// these large numbers

using System;

class GFG {

// Function to find the square of

// 333…333, 666…666 and 999…999

static string find_Square_369(string num)

{

char a, b, c, d;

// if the number is 333…333

if (num[0] == ‘3’)

{a = ‘1’; b = ‘0’; c = ‘8’; d = ‘9’;}

// if the number is 666…666

else if (num[0] == ‘6’)

{a = ‘4’; b = ‘3’; c = ‘5’; d = ‘6’;}

// if the number is 999…999

else

{a = ‘9’; b = ‘8’; c = ‘0’; d = ‘1’;}

// variable for hold result

string result = "";

// find the no of digit

int size = num.Length;

// add size-1 time a in result

for (int i = 1; i < size; i++)

result += a;

// add one time b in result

result += b;

// add size-1 time c in result

for (int i = 1; i < size; i++)

result += c;

// add one time d in result

result += d;

// return result

return result;

}

// Drivers code

public static void Main()

{

string num_3, num_6, num_9;

num_3 = "3333";

num_6 = "6666";

num_9 = "9999";

string result = "";

// find square of 33..33

result = find_Square_369(num_3);

Console.Write("Square of " + num_3

+ " is : " + result + "\n");

// find square of 66..66

result = find_Square_369(num_6);

Console.Write("Square of " + num_9

+ " is : " + result + "\n");

// find square of 66..66

result = find_Square_369(num_9);

Console.Write("Square of " + num_9

+ " is : " + result + "\n");

}

}

// This code is contributed by Smitha

[/sourcecode]

Output :

Square of 3333 is : 11108889 Square of 6666 is : 44435556 Square of 9999 is : 99980001

## Recommended Posts:

- Total numbers with no repeated digits in a range
- Sum of Digits in a^n till a single digit
- Remove repeated digits in a given number
- Finding sum of digits of a number until sum becomes single digit
- Recursive sum of digits of a number formed by repeated appends
- Count ways to spell a number with repeated digits
- Maximum of sum and product of digits until number is reduced to a single digit
- Numbers with sum of digits equal to the sum of digits of its all prime factor
- Repeated subtraction among two numbers
- Sum of squares of first n natural numbers
- Sum of squares of first n natural numbers
- Sum of squares of Fibonacci numbers
- Print squares of first n natural numbers without using *, / and -
- Number of perfect squares between two given numbers
- Average of Squares of Natural Numbers

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.