primfaktorzerlegung

Status
Nicht offen für weitere Antworten.
A

azur

Gast
Hallo,
ich möchte ein programm zur primfaktorzerlegung schreiben. Hier mein Quelltext:

Code:
class primfaktorzerlegung{

   public static void main (String[] args){

     int x = 100;
     int xalt = x;
     boolean p=true;
     int i;
      int Rest;
     for (int j=1; j<xalt; j++){

         for(i=2;i<x;i++){
           while (p = true){
            Rest = x%i;
                 if (Rest == 0){
                 System.out.println(i);
                 p= true;
                 x=x/i;

                 }
                 else
                 p = false;
           
           }

           
           p = true;
         }
     }

   }

}

Warum funxt das nicht??

cu azur
 

Nobody

Top Contributor
habs getestet und es gab keinen fehler, also ist es syntaktisch korrekt, die logik überprüf ich jetzt nicht, dazu bin ich grad viel zu müde
 

bigwilma

Neues Mitglied
Ich habe eine wesentlich kürzere Lösung zur Primfaktorzerlegung gebastelt, ist allerdings nur der Algorithmus, musste noch umsetzten:

Code:
Input n;
m := 2;                // m entspricht dem nächtmöglichsten Primfaktor
do {
    if (n mod m !=0)     // m Teiler von n?
         m := m + 1;      // weiter mit dem nächsten Primfaktorkandidaten
    else {
         Ausgabe m;
         n := n/m           // m ist Teiler, weiter mit n/m
    }
} while (n !=1)


Schönen Gruß
BigWilma
 

marsias

Aktives Mitglied
Hi!

Primfaktorzerlegung? Darüber zerbrechen sich doch weltweit mathematiker die Köpfe oder?

Soweit ich weiß existieren ja bereit ein paar algorythmen.....einfach in java umsetzten :lol:
eine gute übung.

mfg
 

Nobody

Top Contributor
jein, es gibt wege das zu tun, jedoch sind die noch sehr zeitaufwendig. daher sind diese auf für die praxis (wenn es dafür überhaupt ein anwendungsgebiet gibt :rolleyes: ) nicht nutzbar bzw nur sehr begrenzt
 

utnovetur

Mitglied
Abgesehen davon, dass die Abfrage while(p = true) kürzer als while(p) geschrieben werden kann,
ist sie auch unvollständig: Du solltest gleichzeitig abfragen, ob x inzwischen 1 ist:
Code:
 while (p && x > 1)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben