>>279
#include <stdio.h>
unsigned int mtable[]={0,1,2*2,3*3*3,
4*4*4*4,5*5*5*5*5,6*6*6*6*6*6,7*7*7*7*7*7*7,8*8*8*8*8*8*8*8,
9*9*9*9*9*9*9*9*9};
unsigned int ff(int *a){
int i,j;unsigned int result=0;
for(i=1;i<=9;i++)result+=mtable[i]*a[i];return result;
}
int *f(int *a){
unsigned int r;static int x[10],*res=&(x[0]);int i;
r=ff(a);for(i=0;i<10;i++)x[i]=0;
while(r){x[r %10]++;r/=10;}return res;
}
int main(void){
int a[10],*cal,m,i;
for(m=1;m<=10;m++)
for(a[9]=m;a[9]>=0;a[9]--)for(a[8]=m-a[9];a[8]>=0;a[8]--)
for(a[7]=m-a[9]-a[8];a[7]>=0;a[7]--)for(a[6]=m-a[9]-a[8]-a[7];a[6]>=0;a[6]--)
for(a[5]=m-a[9]-a[8]-a[7]-a[6];a[5]>=0;a[5]--)for(a[4]=m-a[9]-a[8]-a[7]-a[6]-a[5];a[4]>=0;a[4]--)
for(a[3]=m-a[9]-a[8]-a[7]-a[6]-a[5]-a[4];a[3]>=0;a[3]--)
for(a[2]=m-a[9]-a[8]-a[7]-a[6]-a[5]-a[4]-a[3];a[2]>=0;a[2]--)
for(a[1]=m-a[9]-a[8]-a[7]-a[6]-a[5]-a[4]-a[3]-a[2];a[1]>=0;a[1]--){
if(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]!=m)continue;
cal=f(a);
for(i=1;i<=9;i++)if(a[i]!=cal[i])goto skip;
printf("Sum=%u¥n",ff(a));
skip:;
}}