第十三届蓝桥杯决赛Java大学B组第二题-数数

【问题描述】 任何一个大于 1 的正整数都能被分解为若干个质数相乘,比如 28 = 2×2×7 被分解为了三个质数相乘。请问在区间 [2333333, 23333333] 中有多少个正整数 可以被分解为 12 个质数相乘?

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

public class Main {
          
   
    public static void main(String[] args) {
          
   
        int ans=0;
        for (int i = 2333333; i <= 23333333; i++) {
          
   
            int t=i;
            int x=0;
            for (int j=2;j<=t/j;j++){
          
   
                while (t%j==0){
          
   
                    x++;
                    t/=j;
                }
            }
            if (t>1){
          
   
                x++;
            }
            if (x==12){
          
   
                ans++;
            }
        }
        System.out.println(ans);
    }
}
经验分享 程序员 微信小程序 职场和发展