Primfaktorzerlegung

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Code:
import herdt_util.*;

public class Primfaktorzerlegung
{

  public static void main (String[] args)
  {
   int zahl, i;
   
   zahl=StdInput.readInt("Zahl:");

     for(i=2;i<=zahl;i++)
     {
      while(zahl%i==0)
      {
       zahl=zahl/i;
       System.out.print("  "+i);
      }
     }
  }
}

tach
der name sagt ja schon alles über die funktion des programms. es funktioniert auch einwandfrei. nur ich weiss nicht warum es funktioniert. könnte mir jemand das so erklären, dass ich es auch meinem lehrer erklären könnte??

MfG
NaBoun
 

Marco13

Top Contributor
Es werden der Reihe nach (aufsteigend!!!) alle möglichen Teiler der Zahl durchprobiert, und wenn man einen Teiler gefunden hat (d.h. eine Zahl, die die vorgegebene Zahl ohne Rest teilt) dann wird die Zahl so oft durch diesen Teiler geteilt, wie es geht. Am Ende sind das die Primfaktoren, weil, wenn ein Teiler KEINE Primzahl wäre, wären ja die Faktoren des Teilers vorher schon als Teiler verwendet worden. Hm.
 
Status
Nicht offen für weitere Antworten.

Oben