蓝桥 Java 幸运数字

试题 B: 幸运数字

本题总分:5 分

【问题描述】 哈沙德数是指在某个固定的进位制当中,可以被各位数字之和整除的正整 数。例如 126 是十进制下的一个哈沙德数,因为 (126)10 mod (1+2+6) = 0;126 也是八进制下的哈沙德数,因为 (126)10 = (176)8,(126)10 mod (1 + 7 + 6) = 0; 同时 126 也是 16 进制下的哈沙德数,因为 (126)10 = (7e)16,(126)10 mod (7 + e) = 0。小蓝认为,如果一个整数在二进制、八进制、十进制、十六进制下均为 哈沙德数,那么这个数字就是幸运数字,第 1 至第 10 个幸运数字的十进制表示 为:1 , 2 , 4 , 6 , 8 , 40 , 48 , 72 , 120 , 126 . . . 。现在他想知道第 2023 个幸运数 字是多少?你只需要告诉小蓝这个整数的十进制表示即可。

【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

答案:215040


public class Main {

    static boolean f(int a, int h){
        int x = a;
        int sum = 0;
        int temp = 0;
        while(a != 0){
            temp = a % h;
            sum += temp;
            a /= h;
        }

        if(x % sum == 0)return true;
        return false;
    }


    public static void main(String[] args) {
        int t = 0;
        for (int i = 1; i <= 2023; i++) {
            while(true){
                t ++;
                if(f(t, 2) && f(t, 8) && f(t, 10) && f(t, 16)){
                    System.out.println("i="  +  i + " t=" + t);
                    break;
                }


            }

        }
    }
}

猜你喜欢

转载自blog.csdn.net/m0_61594817/article/details/130033829