问题描述
给定正整数 n, 请问有多少个质数是 n 的约数。
输入格式
输入的第一行包含一个整数 n 。
输出格式
输出一个整数, 表示 n 的质数约数个数。
样例输入
396
样例输出
3
样例说明
396 有 2,3,11 三个质数约数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
long n=sc.nextLong();
int ans=0;
//我们不需要遍历n,任何一个数,它的质因子大于根号n的要么没有,要么只有一个
for (int i=2;i<=n/i;i++){
if (n%i==0){
ans++;
//int cnt=0;
//这个循环是在求系数
while (n%i==0){
//cnt++;
n/=i;
}
//System.out.println(i+" "+cnt);
}
}
if (n>1){
//System.out.println(n+" "+1);
ans++;
}
System.out.println(ans);
}
}