Ich wurde diese Frage gegeben.Finden eines 'p' und 'q' von n = p * q aus, wenn p und q Primzahlen sind
n = 77
n = p*q
p and q is a prime number
Machen Sie den Finder von p und q mit roher Gewalt.
Mein Code so weit:
public class If {
public static void main(String[] args) {
int p = 3, q = 3;
int n = 77;
int temp = p*q;
boolean flagp, flagq = false;
while (temp != n && p <= 77)
{
for(int i = 2; i <= p/2; ++i)
{
// condition for nonprime number
if(p % i == 0)
{
flagp = true;
break;
}
p = p+2;
q = 3;
for(int j = 2; j <= q/2; ++j)
{
// condition for nonprime number
if(q % j == 0)
{
flagq = true;
break;
}
q = q+2;
temp = p*q;
}
}
}
System.out.println(temp);
}
}
konnte ich die Überprüfung der Primzahl finden. Aber ich kann nicht finden, wie es zu loopen und finden Sie die passenden und q
.
Sie könnten zuerst alle Primzahlen finden und in einer Liste speichern. Dann könnten Sie zwei verschachtelte for-Schleifen verwenden, um zu prüfen, welche Kombination funktioniert. – Christian
Erklären Sie nicht, dass i und j in Ihren for-Schleifen lokal sind. Sie benötigen diese Werte, wenn Sie brechen. Die Hälfte Ihrer anderen Variablen sind redundant. Dazu gehören p, q, temp, flagp, flagq. – Necreaux
Ich könnte darüber nachdenken, alle Primzahlen kleiner als 'n' aufzulisten. Gehe durch die Liste und nehme an, dass es "p" ist. Berechnen Sie die Division 'n/p' =>' q'. Überprüfen Sie, ob 'q' Primzahl ist oder nicht. –