📜  检查给定数字是否可以表示为两个大数的和

📅  最后修改于: 2021-04-23 20:19:49             🧑  作者: Mango

给我们一个数字N。我们需要检查给定的数字N是否可以表示为两个数字的总和。如果是,则打印这两个大数字,否则打印否。大数是以((b)*(b + 1)*(2 * b + 1))/ 6的形式表示的,其中b是自然数。

例子:

Input  : N = 35
Output : 5 and 30

Input  : 105
Output : 14 and 91

Input : 99
Output : No the given number is not 
a sum of two great numbers

众所周知((b)*(b + 1)*(2 * b + 1))/ 6其中b是自然数表示前b个自然数的平方和。例如,如果b = 3,则1 + 4 + 9 =14。因此,要检查输入数n是否可以表示为两个大数的和,则我们将首先计算数组中小于n的所有大数。然后,我们将使用两个指针的方法来找到一对可以求和给定数字n的对。