Problembeschreibung: Zerlegen Sie eine positive ganze Zahl in Primfaktoren. Zum Beispiel: 90 eingeben, 90=2*3*3*5 ausdrucken
Problemanalyse:
Um den Primfaktor von n zu zerlegen, sollten Sie zunächst eine minimale Primzahl k finden und dann die folgenden Schritte ausführen, um den Vorgang abzuschließen:
* (1) Wenn diese Primzahl genau n ist, bedeutet dies, dass der Prozess der Zerlegung der Primfaktoren beendet ist. Drucken Sie sie einfach aus.
* (2) Wenn n <> k, aber n durch k teilbar sein kann, sollte der Wert von k ausgedruckt werden und der Quotient von n dividiert durch k als neue positive ganze Zahl n verwendet werden, und zwar im ersten Schritt wiederholt werden.
* (3) Wenn n nicht durch k teilbar ist, verwenden Sie k+1 als Wert von k und wiederholen Sie den ersten Schritt.
Code:
public class Number {
public void figue(int n) {
int k = 2; //质数
System.out.print(n+"=");
while (k != n) {
if (n % k == 0) {
System.out.print( k+"*");
n = n / k;
} else {
k++;
}
}
System.out.print( + k);
}
public static void main(String[] args) {
System.out.println("输入一个>=0 的数字");
Scanner sc = new Scanner(System.in);
// String number =new Scanner(System.in).nextLine();
int num = Integer.parseInt(sc.nextLine());
// Number number1 = new Number();
System.out.println("result is follow:");
// Number.figue(num);
new Number().figue(num);
}
}
Ergebnis:
diskutieren:
Zu Beginn wurde die Fori-Schleife verwendet, die jedoch nicht einfach zu schreiben war, und dann in eine While-Schleife geändert.
Nach dem Schreiben und Nachdenken können Sie auch eine for-Schleife verwenden, wobei i die Primzahl k ist.
Die Bedingung für den Sprung aus der Schleife: if (i==n) {
sout("i") ; brechen; }