水仙花数求解 ,help!

这个求水仙花数的程序哪里错了呀?看了几遍没有检查出来。
System.out.println("请输入一个数:");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
int yu=0;
int shang=0;
int sum=0;
// for(int num=1;num<=100;num++) {
do {
yu=num%10;
shang=num/10;
sum+=yuyu*yu;
}while(shang>10);
sum+=shang
shang*shang;
System.out.print("1");
if(num==sum) {
System.out.println(num);
// }
}

这样就可以了

System.out.println("请输入一个数:");
        Scanner input=new Scanner(System.in);
        int num=input.nextInt();
        int yu=0;
        int shang=num;
        int sum=0;
        do {
            yu=shang%10;
            shang/=10;
            sum+=yu*yu*yu;
        }while(shang>0);
        if(num==sum) {
            System.out.println(num);
        }