int ch[10];
int t=0;
int a=0,b=0,c=0,d=0,e=0,f=0;
for(a=2; a<=9; a++)
for(b=2; b<=9; b++)
for(d=12; d<=49; d++)
for(c=d; c<=98; c=c+d)
for(e=12; e<=98; e++)
for(f=2; f<=9; f++)
{
if(pow(a, b)+c/d!=e*f)
continue;
t = 0;
ch[0] = 0;
ch[1] = a;
ch[2] = b;
ch[3] = f;
ch[4] = c % 10;
ch[5] = c / 10;
ch[6] = d % 10;
ch[7] = d / 10;
ch[8] = e % 10;
ch[9] = e / 10;
for (int j = 0; j <= 8; j++)
{
for (int j2 = j + 1; j2 <= 9; j2++)
{
if (ch[j] == ch[j2])
{
t = 1;
break;
}
}
}
if(t==0)
printf("%d ,%d ,%d ,%d ,%d ,%d \n ",a,b,c,d,e,f);
}
printf("end");
pow(a, b)
这是浮点数计算,不可靠,可能有误差,应该用for循环自己乘