java 求十位的自幂数


for (long i = 1000000000L; i <= 9999999999L; i++) {
            int sum=0;
            long temp=i;
            while (temp!=0){
               sum+=(Math.pow(temp%10,10));
               temp/=10;
            }
            if (sum==i){
                System.out.println(i);
            }
        }

求十位的十全十美数,但是这样太慢了,怎么能让他快速得到结果


public class Main {
    public static void main(String[] args) {
        for (int i = 1000000000; i < 10000000000L; i++) {
            long num = i;
            int sum = 0;
            while (num > 0) {
                sum += Math.pow(num % 10, 10);
                num /= 10;
            }
            if (sum == i) {
                System.out.println("10位的自幂数:" + i);
            }
        }
    }
}