请问如何用代码解决以下问题?

大佬们,请问如何用代码解决以下问题?
有一个三位数,个位数字比百位数字大,而百位数字又比十位数字大,并且各位数字之和等于各位数字相乘之积,此三位数的结果是

有一个三位数,个位数字比百位数字大,而百位数字又比十位数字大,并且各位数字之和等于各位数字相乘之积,此三位数的结果是
先得到各位数字,判断和与积是否相等,相等再比较三个数大小

void main();
{
  for(int i=100;i<1000;i++)
  {
    int a = i/100;
    int c = i%10;
    int b = (i-a*100-c)/10;
    if(a*b*c == a+b+c && a>b && b>c)
      printf("这个数是:%d\n",i);
  }
}

#include <stdio.h>

int main()
{
for (int i = 0; i < 10; i++)//个
{
for (int j = 0; j < 10; j++)//十
{
for (int k = 0; k < 10; k++)//百
{
if (i > k && k > j && (i+j+k) == ijk)
{
printf("%d\n", i+j10+k100);
return 0;
}
}
}
}

return 0;

}

结果是213

这个很简单的,我们可以先分别定义三个变量i,j,k。
并且规定i代表百位,j代表10位,k代表个位。
计算条件如下:
(1)个位比百位大----->k > i
(2)百位比十位大----->i > j
(3)三位之和等于三位之积---->(i+j+k) == (i * j * k)
用三个for循环就可以计算出来是213,代码如下:

#include <stdio.h>

int main()
{
    int i,j,k;//表示百位,十位和个位数
    for(i = 0;i < 10;i++)
    {
        for(j = 0;j < 10;j++)
        {
            for(k = 0;k < 10;k++)
            {
                //首先满足三数之和等于三数之积
                if((i+j+k) == (i*j*k))
                {
                    //然后个位大于百位,百位大于十位
                    if(k > i && i > j)
                    {
                        printf("%d%d%d\n",i,j,k);
                    }
                }
            }
        }
    }
    return 0;
}

第一次玩这个,不太懂规则,还望海涵