【Java 分解因数】

【题目描述】

给出一个正整数aa,要求分解成若干个正整数的乘积,即a=a1×a2×a3×...×ana=a1×a2×a3×...×an,并且1<a1≤a2≤a3≤...≤an1<a1≤a2≤a3≤...≤an,问这样的分解的种数有多少。注意到a=aa=a也是一种分解。

【输入】

第1行是测试数据的组数nn,后面跟着nn行输入。每组测试数据占11行,包括一个正整数a(1<a<32768)a(1<a<32768)。

【输出】

nn行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种数。

【输入样例】

2
2
20

【输出样例】

1 4

```Java

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            int x = sc.nextInt();
            System.out.println(count(x,x));
        }
    }
    //a是被除数,b是因子
    public static int count(int a, int b) {
        if(a == 1)
            return 1;
        if(b == 1)
            return 0;
        if(a % b == 0){
            return count(a/b, b) + count(a, b-1);
        }
        else
            return count(a, b-1);
    }
}

```

上一篇:如何解决c++: internal compiler error: 已杀死 (program cc1plus)


下一篇:原创-性能测试篇-3D性能测试脚本