各位大佬帮帮忙,实在做不出来

如果一个数它的每位数码的平方相加等于这个数自己。输出1000以内所有这样的数,并统计有几个这样的数字

有用请采纳

#include<stdio.h>
int main(){
    int a, b, c, count;
    count = 0;
    for (int i = 0; i < 1000; i++){
        if (i < 10 && i * i == i){ 
            printf("%d\n", i);
            count += 1; 
        } 
        
        else if(i < 100){
            a = i % 10; 
            b = i / 10 % 10 ;
            if (a * a + b * b == i){
                printf("%d\n", i);
                count += 1;
            }
        }
        
        else{
            a = i % 10; 
            b = i / 10 % 10 ;
            c = i / 100 % 10 ;
            if (a * a + b * b + c * c == i){
                printf("%d\n", i);
                count += 1;
            }
        }
    }
    printf("共%d个数\n", count);
}