java求六位数以内所有自幂数

如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数。

以下用java语言求六位数以内所有自幂数。

独身数共有9个: 1,2,3,4,5,6,7,8,9;

水仙花数共有4个:153,370,371,407;

四叶玫瑰数共有3个:1634,8208,9474;

五角星数共有3个:54748,92727,93084;

六合数只有1个:548834;

​
import java.util.*;
public class HelloWorld {
    
    public static void main(String[] args) {
        for (int n =1; n <= 999999; n++ ){
           
            int count = 0;
            int tmp = n;
            
            while (tmp != 0){  //判断数字n的位数
                count++;
                tmp = tmp/10;
              }
            
            tmp = n;
           
             int sum = 0;
            while (tmp != 0 ) {
                
                sum += Math.pow(tmp%10,count); // tmp%10计算每位上的数字,count是每位数字的次幂数
                                              
                tmp = tmp/10;
              }

            if(sum == n && count==1)
               System.out.println(sum+"是独身数");
            if(sum == n && count==3)
               System.out.println(sum+"是水仙花数");
            if(sum == n && count==4)
               System.out.println(sum+"是四叶玫瑰数");
            if(sum == n && count==5)
               System.out.println(sum+"是五角星数");
            if(sum == n && count==6)
               System.out.println(sum+"是六合数");

        }
    }
}   

​

你可能感兴趣的:(java,职场和发展)