Zitat von
dino:
Zitat von
Jürgen Thomas:
Zitat von
dino:
bei ein einfangen und wenn z mod x = 0 ist x und z/x in deinem arry oder was auch immer speichern (array of booleans wäre da gut) und zusätzlich das z/x in iene variable speichern, weil sobald du mit x an die Zahl angelangt bist, brauchst du sie nicht mehr überprüfen und bist fertig
ups
also:
var i,i2:integer
var drin:array[1..z] of boolean
i:=1
repeat
if z mod i = 0 then begin drin[i]:= true; drin[z/i]:= true; i2:=z/i end;
inc(i)
until i>=i2
so klar?
Sicher, aber dir scheinen die Posts von Khabarakh und Ratte noch nicht klar zu sein: until i>=Sqrt(z)
Edit: Bei größeren Zahlen nehm ich aber an, dass es mit Primfaktorzerlegung schneller geht. Die dann aber natürlich nicht so machen, wie in Beitrag #5 beschrieben.