Ich möchte ein Programm machen, das die Primfaktorzerlegung von Zahlen der Größe 100^100 vergleichen kann. Ich möchte, dass das Programm mir sagt, ob es eine 2 gibt, zum Beispiel in der Primfaktorzerlegung, aber ich möchte nicht wissen, wie viele es gibt ... Und dann möchte ich die Primfaktorzerlegung zweier Zahlen vergleichen. Könnte jemand helfen? Die Schwierigkeit ist wirklich die Größe der Zahlen ... Und die Effizienz des Programms ... Ich möchte, dass der Vergleich zweier Zahlen dauert nur maximal 10 Sekunden ...Erhalten der Primfaktorzerlegung einer Zahl schnell weniger als 100^100
Ich habe dies;
import java.util.ArrayList;
import java.util.List;
public class PrimeFactorisation {
public static List<Integer> primeFactors(int numbers) {
int n = numbers;
List<Integer> factors = new ArrayList<Integer>();
for (int i = 2; i <= n/i; i++) {
while (n % i == 0) {
factors.add(i);
n /= i;
}
}
if (n > 1) {
factors.add(n);
}
return factors;
}
public static void main(String[] args) {
System.out.println("Primefactors of 44");
for (Integer integer : primeFactors(12345678901)) {
System.out.println(integer);
}
}
}
Dieser Code ist für Java, aber ich bin auf der Suche nach etwas primarly effizient, so bin ich bereit, die Sprache ... großen ganzen Zahlen
Myea ... Ich möchte wissen, ob alle Faktoren gleich sind, aber es ist mir egal, wenn die Anzahl der Faktoren in der Faktorisierung ist, ich will nur wissen, ob es da ist, als es hat in dem anderen da zu sein, abd wenn nicht, dann sollte es auch nicht in dem anderen sein ... – Taumen
Lasse alle niedrigen Faktoren als ersten Durchlauf aus. Führen Sie dann einen Primzahltest auf den Resten durch. http://math.stackexchange.com/questions/445351/fastest-method-to-determine-if-two-numbers-are-coprime –