我想计算一个整数的每个素因子的数量。例如 18=2^1*3^2。我想得到每个素数的所有指数部分。对于数字 18,它是 1+2=3。
下面是生成整数的所有质因数的程序。
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 2; i <= n / i; i++) {
while (n % i == 0) {
System.out.print(i + ", ");
n /= i;
}
}
if (n > 1)
System.out.print(n + ", ");
对于输入 18,此程序打印 2, 3, 3, . 至于完成我的要求,要计算每个素数的出现,我可以先将它们全部添加到一个列表中,然后for
从列表的开始到结束的循环可以计算每个数字的出现。但这个想法对我来说似乎并不好。不必要我for
为所有素数添加一个循环,它只是告诉我这个素数在列表中出现了 n 次。
任何更好的方法来获得整数的单个素数的数量。