 GeeksforGeeks App
Open App Browser
Continue

## Related Articles

Brahmagupta Fibonacci identity states that the product of two numbers each of which is a sum of 2 squares can be represented as sum of 2 squares in 2 different forms.

Mathematically,

If a = p^2 + q^2 and b = r^2 + s^2
then a * b can be written in two
different forms:
= (p^2 + q^2) * (r^2 + s^2)
= (pr – qs)^2 + (ps + qr)^2 …………(1)
= (pr + qs)^2 + (ps – qr)^2 …………(2)

Some Examples are:

a = 5(= 1^2 + 2^2)
b = 25(= 3^2 + 4^2)
a*b = 125
Representation of a * b as sum of 2 squares:
2^2 + 11^2 = 125
5^2 + 10^2 = 125
Explanations:
a = 5 and b = 25 each can be expressed as a sum of 2 squares and their product a*b which is 125 can be expressed as sum of 2 squares in two different forms. This is according to
the Brahmagupta Fibonacci Identity and satisfies the identity condition.
a = 13(= 2^2 + 3^2)
b = 41(= 4^2 + 5^2)
a*b = 533
Representation of a * b as sum of 2 squares:
2^2 + 23^2 = 533
7^2 + 22^2 = 533
a = 85(= 6^2 + 7^2)
b = 41(= 4^2 + 5^2)
a*b = 3485
Representation of a * b as sum of 2 squares:
2^2 + 59^2 = 3485
11^2 + 58^2 = 3485
26^2 + 53^2 = 3485
37^2 + 46^2 = 3485

Below is a program to verify Brahmagupta Fibonacci identity for given two numbers which are sums of two squares.

## C++

 `// CPP code to verify``// Brahmagupta Fibonacci identity``#include ``using` `namespace` `std;` `void` `find_sum_of_two_squares(``int` `a,``                             ``int` `b)``{``    ``int` `ab = a*b;` `    ``// represent the product``    ``// as sum of 2 squares``    ``for` `(``int` `i = 0; i * i <= ab; i++)``    ``{``        ``for` `(``int` `j = i; i * i +``                        ``j * j <= ab; j++)``        ``{` `            ``// check identity criteria``            ``if` `(i * i + j * j == ab)``                ``cout << i << ``"^2 + "` `<< j``                     ``<< ``"^2 = "` `<< ab << ``"\n"``;``        ``}``    ``}``}` `// Driver code``int` `main()``{``    ``// 1^2 + 2^2``    ``int` `a = 1 * 1 + 2 * 2;``    ` `    ``// 3^2 + 4^2``    ``int` `b = 3 * 3 + 4 * 4;` `    ``cout << ``"Representation of a * b as sum"``            ``" of 2 squares:\n"``;` `    ``// express product of sum of 2 squares``    ``// as sum of (sum of 2 squares)``    ``find_sum_of_two_squares(a, b);``}`

## Java

 `// Java code to verify Brahmagupta``// Fibonacci identity` `class` `GFG``{``    ``static` `void` `find_sum_of_two_squares(``int` `a,``                                        ``int` `b)``{``    ``int` `ab = a * b;` `    ``// represent the product``    ``// as sum of 2 squares``    ``for` `(``int` `i = ``0``; i * i <= ab; i++)``    ``{``        ``for` `(``int` `j = i; i * i +``                        ``j * j <= ab; j++)``        ``{``            ``// check identity criteria``            ``if` `(i * i + j * j == ab)``                ``System.out.println(i + ``"^2 + "` `+``                                   ``j +``"^2 = "` `+ ab);``        ``}``    ``}``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``// 1^2 + 2^2``    ``int` `a = ``1` `* ``1` `+ ``2` `* ``2``;``    ` `    ``// 3^2 + 4^2``    ``int` `b = ``3` `* ``3` `+ ``4` `* ``4``;` `    ``System.out.println(``"Representation of a * b "` `+``                        ``"as sum of 2 squares:"``);` `    ``// express product of sum``    ``// of 2 squares as sum of``    ``// (sum of 2 squares)``    ``find_sum_of_two_squares(a, b);``}``}` `// This code is contributed``// by Smitha Dinesh Semwal`

## Python 3

 `# Python 3 code to verify``# Brahmagupta Fibonacci identity` `def` `find_sum_of_two_squares(a, b):` `    ``ab ``=` `a ``*` `b` `    ``# represent the product``    ``# as sum of 2 squares``    ``i``=``0``;``    ``while``(i ``*` `i <``=` `ab):``        ``j ``=` `i``        ``while``(i ``*` `i ``+` `j ``*` `j <``=` `ab):` `            ``# check identity criteria``            ``if` `(i ``*` `i ``+` `j ``*` `j ``=``=` `ab):``                ``print``(i,``"^2 + "``,j,``"^2 = "``,ab)``            ``j ``+``=` `1``        ``i ``+``=` `1``    ` `# Driver code``a ``=` `1` `*` `1` `+` `2` `*` `2` `# 1^2 + 2^2``b ``=` `3` `*` `3` `+` `4` `*` `4` `# 3^2 + 4^2` `print``(``"Representation of a * b as sum"``                     ``" of 2 squares:"``)` `# express product of sum of 2 squares``# as sum of (sum of 2 squares)``find_sum_of_two_squares(a, b)` `# This code is contributed by``# Smitha Dinesh Semwal`

## C#

 `// C# code to verify Brahmagupta``// Fibonacci identity``using` `System;` `class` `GFG``{``    ``static` `void` `find_sum_of_two_squares(``int` `a,``                                        ``int` `b)``    ``{``    ``int` `ab = a * b;` `    ``// represent the product``    ``// as sum of 2 squares``    ``for` `(``int` `i = 0; i * i <= ab; i++)``    ``{``        ``for` `(``int` `j = i; i * i +``                        ``j * j <= ab; j++)``        ``{``            ``// check identity criteria``            ``if` `(i * i + j * j == ab)``                ``Console.Write(i + ``"^2 + "` `+ j +``                          ``"^2 = "` `+ ab + ``"\n"``);``        ``}``    ``}``}` `// Driver code``public` `static` `void` `Main()``{``    ``// 1^2 + 2^2``    ``int` `a = 1 * 1 + 2 * 2;``    ` `    ``// 3^2 + 4^2``    ``int` `b = 3 * 3 + 4 * 4;` `    ``Console.Write(``"Representation of a * b "` `+``                   ``"as sum of 2 squares:\n"``);` `    ``// express product of sum of``    ``// 2 squares as sum of (sum of``    ``// 2 squares)``    ``find_sum_of_two_squares(a, b);``}``}` `// This code is contributed``// by Smitha Dinesh Semwal`

## PHP

 ``

## Javascript

 ``

Output :

```Representation of a * b as sum of 2 squares:
2^2 + 11^2 = 125
5^2 + 10^2 = 125```

Time complexity : O(a*b)
Auxiliary Space : O(1)

My Personal Notes arrow_drop_up