21-因子个数

题目

一个正整数可以分解成一个或多个数组的积。例如36=2*2*3*3,即包含2和3两个因子。NowCoder最近在研究因子个数的分布规律,现在给出一系列正整数,他希望你开发一个程序输出每个正整数的因子个数。

输入描述:

输入包括多组数据。

每组数据仅有一个整数n (2≤n≤100000)。

输出描述:

对应每个整数,输出其因子个数,每个结果占一行。

示例1

输入

30
26
20

输出

3
2
2


思路

21-因子个数_第1张图片

21-因子个数_第2张图片


代码

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            int n = sc.nextInt();
            int count = 0;
            for(int i = 2; i < Math.sqrt(n); i++) {
                if(n % i == 0) {
                    while(n % i == 0) {
                        n = n / i;
                    }
                    count++;
                }
            }
            if(n != 1) {
                count++;
            }
            System.out.println(count);
        }
    }
}

你可能感兴趣的:(笔试刷题-编程题,java,算法,数据结构)