In this case, simpler seems to be much faster:

Code:

#include<stdio.h>
int main()
{
int i,
a = 0,
b = 0,
c = 0,
d = 0,
e = 0,
f = 0;
double asum, bsum, csum, dsum, esum;
double pow[75];
for (i = 1; i < 75; i++)
pow[i] = (double)i*i*i*i*i;
for(f=74;f>1;f--)
{
for(a = 0, asum = 0; a < f; a++)
{
asum = pow[a];
for(b = a, bsum = 0; b < f && bsum < pow[f]; b++)
{
bsum = asum + pow[b];
for(c = b, csum = 0; c < f && csum < pow[f]; c++)
{
csum = bsum + pow[c];
for(d = c, dsum = 0; d < f && dsum < pow[f]; d++)
{
dsum = csum + pow[d];
for(e = d, esum = 0; e < f && esum <= pow[f]; e++)
{
esum = dsum + pow[e];
if(esum == pow[f])
{
printf("a = %d, b = %d, c = %d, d = "
"%d, e = %d, f = %d\n",a,b,c,d,e,f);
printf("pow[f] = %.0f\n",pow[f]);
return 0;
}
}
}
}
}
}
}
printf("Not found.\n");
return 0;
}