题解 | 质数因子

核心理念:

  1. 从最小的质因数i=2开始,用n不断求余,同时将n变小,而i变大
  2. 采用两次循环,其i!=n是为了防止 25这种分解成两个质因数的,最后n会变成1,会把1打印出来
  3. 需要的case:
  4. 90 一般情况
  5. 25 两个相同的质因数
  6. 13 本身就是质因数的情况
  7. 167521 较大的质因数

#牛客创作赏金赛##软件开发2024笔面经#

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        getPrimeNumer(in.next());
    }
    // 核心: 从2开始,挨个求余,同时把n不断缩小
    // case: 90,9,25,13,47
    public static void getPrimeNumer(String num){
        int n = Integer.parseInt(num);
        // for循环从2到n
        for(int i=2;i<n;i++){
            // while循环: 持续循环,i!=n,i==n的话,在质因数相同的情况下,把1加上
            while(i!=n){
                // n对i求余等于0,则打印
                if(n%i==0){
                    System.out.print(i+" ");
                    // 缩小n值
                    n=n/i;
                }else {
                    break;
                }
            }
        }
        System.out.print(n);
    }
}

全部评论

相关推荐

自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务