麻烦各位大神指正不足呀!!!!!

#include <stdio.h>
#include <math.h>
//思路:
//     1.多组输入,这个点要注意。
//     2.三位数,就说明是一个整数。
//     3.有范围,就用循环产生这些数字。逐一判断。
//     4.怎么判断,判断是否满足:各位数字的立方和等于其本身。
//     观察打印输出得:在一行输出,判断一个就打印一个,用空格隔开。从小到大判断,并从小到大输出。
//     如果都判断完没有发现水仙花数,就打印'no'.
//     5.要注意一点,使用math头文件,在C语言情况下,可能编译失败,pow函数,使用c++就可以了。
//     具体原因还在学习中,欢迎各位大神指正呀!!!!!
int main()
{
    //多组输入
    int m,n;
    int i=0;
    while(scanf("%d%d",&m,&n)!=EOF)
    {
        //循环产生这些数字
        for(i=m;i<=n;i++)//下边m重新赋值不会影响这里,因为i=m,只是在进入循环时才生效。
        {
            //判断是否为水仙花数 123
            if(i==pow(i/100,3)+pow((i/10)%10,3)+pow(i%10,3))
            {
                printf("%d ",i);
                m=1;//用m判断有水仙花数
            }
        }
        //如何判断没有水仙花数:若m不等于1,则没有水仙花数。
        if(m!=1)
            printf("no");
        printf("\n");
    }
    return 0;
}