所以我的问题是我必须在一个数组中列出一个数字的素数因子,以及另一个素数因子在给定数组内相同位置上的幂(所以如果你想要 60 的素数因子,我需要返回一个内容如下的数组:素数:{2, 3, 5} 次幂 {2, 1, 1} => (2*2)*(3*1)*(5*1) = 60。我现在有以下代码来确定素数数组中的重复项,但是我现在如何不将它们打印到控制台,而是将它们保存在另一个变量中,然后将它们用于幂数组?
long current = primes[0];
boolean found = false;
for( int i = 0; i < primes.length; i++) {
if( current == primes[i] && !found) {
found = true;
}
else if( current != primes[i] ) {
System.out.print(" " + current);
current = primes[i];
found = false;
}
完整的代码将是:
public class Algebra {
public static long [][] primfaktorzerlegung(long n){
int position = 0;
long[] primes = new long [0];
long [] powers = new long [0];
while(n%2 == 0) {
primes[position] = 2;
position++;
n = n / 2;
}
for (int i = 3; i <= Math.sqrt(n); i+= 2)
{
while (n%i == 0)
{
n /= i;
}
}
long current = primes[0];
boolean found = false;
for (int i = 0; i < primes.length; i++) {
if (current == primes[i] && !found) {
found = true;
} else if (current != primes[i]) {
current = primes[i];
found = false;
}
}
long[][] z = {primes,powers};
return z;
}
}
这显然是未完成的,但为了展示整个内容,我还是发布了它。
12345678_0001
波斯汪
相关分类