🦋 Sum of 2 different squares, 3 different ways
Over at Unfogged, Frederick suggests that 325 is the smallest number which can be expressed as a sum of two perfect squares three different ways. I just wrote a program to check this which confirms Frederick's suspicion; here it is if you want to check my logic. #include
int perfect[] = {
1, 4, 9, 16, 25, 36, 49, 64, 81, 100,
11 * 11, 12 * 12, 13 * 13,
14 * 14, 15 * 15, 16 * 16, 17 * 17,
18 * 18, 19 * 19, 20 * 20
};
bool IsSumOfSq(int s, int &a, int &b, int x1, int x2)
{
for (int i = a + 1; i < 20; ++i)
{
if (s < perfect[i])
return false;
int diff = s - perfect[i];
for (int j = 0; j < 20; ++j)
if (j == x1 || j == x2)
continue;
else if (perfect[j] == diff)
{
a = i;
b = j;
return true;
}
}
}
int main()
{
int i;
for (i = 0; i < 400; ++i)
{
int a = -1, b;
if (IsSumOfSq(i, a, b, -1, -1))
{
int c = a, d;
if (IsSumOfSq(i, c, d, a, -1))
{
int e = c, f;
if (IsSumOfSq(i, e, f, a, c))
{
printf("%d = %d^2 + %d^2\n"
" = %d^2 + %d^2\n"
" = %d^2 + %d^2",
i, a + 1, b + 1, c + 1,
d + 1, e + 1, f + 1);
break;
}
}
}
}
return 0;
}
Output:
325 = 1^2 + 18^2
= 6^2 + 17^2
= 10^2 + 15^2
posted evening of Friday, January 13th, 2006 ➳ More posts about Programming ➳ More posts about Programming Projects ➳ More posts about Projects
|