Algorithmus

Also wir haben in Informatik die Aufgabe bekommen folgeneden Algorithmus als Struktogramm zuschreiben: "Alle Teiler einer natürlichen Zahl N". N soll dabei die Variable sein. Also der Algorithmus soll dann z.B alle Teiler der Zahl 9 bestimmen. Nur weis ich gar nicht wie ich da anfangen soll. Könnt ihr mir helfen?
 
Wo ist das Problem ? Du fängst bei I = (N DIV 2) an zu zählen, bei jedem Versuch verringerst Du I um 1. Wenn N MOD I = 0 ist, dann hast Du zwei Teiler : (N DIV I) und I. Falls Du einen Teiler gefunden hast, setzt Du noch A als unterste Grenze : A = (N DIV I)+1. Das ganze wird wiederholt, bis I=A. So spart man ein bisschen Rechenzeit. Am Ende schreibst Du dann noch die 1 und N selbst dazu, fertig. Ist jetzt zwar ziemlich bruteforce, aber es funktioniert.

Das ganze aufzuzeichnen sollte nun nicht besonders schwer sein.

Der übliche Sermon : Ich übernehme keine Verantwortung für Denk- und Syntaxfehler. ;-)
 
würd´s mir ja mal anschaun aber der link ist tot...

nen bild wär übrigens schöner als ne doc ( weil wegen der sicherheit und so ;) )
 
ich denk das passt so, bin mir nur bei der Syntax nicht sicher.
I = I + 1 machst du ja eigenlich nur einmal und nicht an zwei stellen im programm, müsste also als "großes kästchen unter ja | nein "

als zweite abbruchbedingung könntest du noch I = N : 2 einfügen, ohne läufts aber auch.
/edit ups, T < 1 gehn natürlich auch

greetz,
Sneaker
 
Wenn Du von von der 1 anfängst zu zählen, kannst Du bei Wurzel(N) aufhören zu suchen, da bis dahin sämtliche Teiler gefunden sind, wenn Du pro gefundenem Teiler sowohl I als auch N/I speicherst. Für die 100 würde das z.b. heissen, daß du satte 90 Schritte sparst. Cheers.
 
aber in dem schema, wieso "wiederhole bis T<1 " ???

Also ich wär für ne menschliche ausdrucksweise!

Die werden doch nie in die 0,x zahlen kommen???
 
Zurück
Oben