BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C Primfaktorzerlegung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Primfaktorzerlegung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Flanders
unregistriert
Primfaktorzerlegung       Zum Anfang der Seite springen

Ich will mir ein Programm basteln was die Primfaktorzerlegunfg errechent, doch irgendwie klapt das nicht könnt ihr mir Tipps geben ??

#include<stdio.h>

int main()
{

/* Variablen deklarieren/ intialisieren */
int M = 100;
unsigned int ZR[99] = {0};
unsigned int PR[50] = {0};
int j = 0;
int i = 0;
int x = 0;

/* Zahlen werden Array zugeweisen */
for(i=0; i<M; i++)
{
ZR[i]=i;
}

/* Primzahlen werden herraus gefiltert */
for(i=2; i<M/2; i++)
{
if(ZR[i] > 0)
{
for(j=i*2; j<M; j+=i)
{
ZR[j]=0;
}
}
}

/* Primzahlen Ausgabe */
for(i=0; i<M; i++)
{
if(ZR[i] > 0)
{
printf("\n%i", ZR[i]);
}
}

/************************************/

j = 0;

for(i=2; i<M; i++)
{
if(ZR[i] > 0)
{
PR[j] = ZR[i];
j++;

}
}


printf("\n\nZahl Eingeben:");
scanf("%i", &x);


for(i=0; i<j && x > 1; i++)
{


do
{
printf("\n%u",PR[i]);
x/=PR[i];

} while(x%PR[i] == 0);


}

if(x > 1)
{
printf("\n FEHLER");

}



return 0;
}
08.01.2003 22:53
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Ui, ui,

warum einfach wenn's kompliziert genausogut geht Augenzwinkern
Mir ist für dieses Problem auf die Schnelle das hier eingefallen.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
int main()
{
int VarMax = 100; //Alle Zahlen bis 100 auf Primzahlen testen
int Divisor;
int Divident = 3;
BOOL IsPrime;

for (Divident = 3; Divident <= VarMax; Divident++)
{
IsPrime = FALSE;
Divisor = 2;
do
{
if (Divident % Divisor == 0) IsPrime = FALSE;
Divisor++;
} while ((Divisor < Divisor / 2) && (IsPrime))
if (IsPrime) printf("%d\n", Divident);
}

}
08.01.2003 23:40 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Flanders
unregistriert
      Zum Anfang der Seite springen

Ne, das kann ich sooo noch nicht, kannst du nicht meine Version verbessern, Wäre super Nett.
09.01.2003 10:10
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Pfeil       Zum Anfang der Seite springen

Zitat:
Original von Compuholic
} while ((Divisor < Divisor / 2) && (IsPrime))
Divisor ist nienicht kleiner als die Hälfte davon (es sei denn es handelt sich um Zahlen zwischen 0 und 1 *g). Du meinstest wohl eher Divident < Divisor / 2.

Aber auch das ist eigentlich zu viel, da du schon mit Divident < sqrt(Divisor) abbrechen kannst (bin mir jetzt nicht sicher, ob das sqrt in C war, ich meine jedenfalls die Quadratwurzel).

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LX: 09.01.2003 15:37.

09.01.2003 15:36 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Ich weiß aber ich habe einfach keine Lust das ganze in Floats umzuwandenl. Wie schon gesagt eine schnell skizzierte Lösung. Wenn es ganz dumm läuft wird sonst unter Umständen eine Primzahl nicht erkannt (aufgrund des Casts). Zuverlässigkeit geht bei mir dann doch über Schnelligkeit.

Was die Abbruchbedingung angeht hast Du natürlich recht *g*
09.01.2003 17:36 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C Primfaktorzerlegung

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH