C语言问题请教各位亲

判断一个给定的数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。
输入格式:输入在一行中给出一个需要判断的整数N(100=<N=<999)
输出格式:如果N是水仙花数则在一行中输出"yes",否则输出"no"。如果N不是三位数,则输出"Invalid Value"。

供参考:

#include <stdio.h>
int main()
{
    int N, k, s;
    scanf("%d", &N);
    if (N >= 100 && N <= 999)
    {
        k = 0; s = N;
        while (N)
        {
            k += (N % 10) * (N % 10) * (N % 10);
            N /= 10;
        }
        if (k == s)
            printf("Yes\n");
        else
            printf("No\n");
    }
    else {
        printf("Invalid Value\n");
    }
    return 0;
}