Java中的因子

问题描述 投票:1回答:4

我正在尝试计算n阶乘因数的一个素因数列表,这些素因数以升序排序,并且此列表中的每个素数与因式因数因数分解中出现的次数一样多。 >

我有一个程序,可以计算最多一个指定数字的质数的链表,但是我不确定在将当前正被乘以的整数的质数附加到阶乘后如何实现这一点:

我正在尝试计算n阶乘的素数的列表,素数以升序排序,并且此列表中的每个素数与出现在...中的素数完全一样多...

java primes factorial prime-factoring
4个回答
0
投票
public static List<Integer> getFactorialPrimeFactors(int n) { List <Integer> primes = primeNum(n); ArrayList <Integer> primeDivisors = new ArrayList<>(); for(int i: primes) { int count = 0; for(int num = i; num <= n; num *= i) { count += n/num; } while(count > 0) { primeDivisors.add(i); count--; } } return primeDivisors; }

0
投票
假设您已经计算了

[2..N]


0
投票
然后在您的main方法中,您可以编写一个forloop,该迭代遍历从1到n的所有数字,并在每个循环中调用此primeFactors方法。您可以迭代从调用此方法获得的结果,并将这些质数添加到列表中。最后,如果您希望数字顺序排列,则可以对列表进行排序。

List<Integer> primes = primeNum(n); for(int i = 1; i <= 10; i ++){ List<Integer> temp = primeFactors(i,primes); for(int j = 0; j < temp.size(); j++){ list.add(temp.get(j)); } }


0
投票
public static List<Integer> getNfactorialFactors(int n, List<Integer> primes) { List<Integer> factors = new ArrayList<>(); for (int p : primes) { int nn = n; while (nn >= p) { for (int i = nn / p; i > 0; i--) { factors.add(p); } nn/=p; } } return factors; }
© www.soinside.com 2019 - 2024. All rights reserved.