c语言水仙花数解决一般问题

输入两个3位的正整数m,n,输出[m,n]区间内所有的“水仙花数”。
每组测试输入两个3位的正整数m,n(100≤m<n≤999)
输入:
100 150
100 200
输出:
none
153=111+555+333

供参考:

#include<stdio.h>
int main() {
    int flg, a, b, i, k, t, s[3];
    while (scanf("%d%d", &a, &b) == 2 && a != 0 && b != 0)// 输入 0 0 时结束输入
    {
        for (i = a, flg = 0; i <= b; i++) {
            t = i; k = 0;
            while (t != 0) {
                s[k++]= t % 10;
                t /= 10;
            }
            t = s[0] * s[0] * s[0] + s[1] * s[1] * s[1] + s[2] * s[2] * s[2];
            if (i == t) { 
                flg = 1;
                printf("%d=%d*%d*%d+%d*%d*%d+%d*%d*%d\n", i,
                    s[2],s[2],s[2],s[1],s[1],s[1],s[0],s[0],s[0]);
            }
        }
        if (!flg)
            printf("none\n");
    }
    return 0;
}