Zahlen Generator

Hallo Alle zusammen,
ich komme eigentlich aus der Python Ecke, zwinge mich aber Sachen in Java zu schreiben, einfach weil die Sprache eben wichtig ist und ich sie noch nicht besonders gut kann.
Ich habe eben ein Problem mit Python gelöst und grüble jetzt darücber wie man das in Java machen könnte.
Es geht darum einen Zahlengeneratorn zu bauen.
Ein Generator in Python gibt mit jedem neuen Aufruf eine neue Zahl aus, zB:
def intGenerator():
i=0
while True:
yield i
i+=1
Dann könnte ich sowas hier machen:

gen=intGenerator()
print(next(gen))
print(next(gen))
print(next(gen))
und die Ausgabe wäre
0
1
2
Ok, Meine Frage:
Geht sowas auch in Java?
Warum ich das haben will?
Ich habe eine Funktion zur Primfaktorisierung geschrieben. Dabei soll eine Zahl einfach der Reihe nach durch Primzahlen geteilt werden, also erstmal wird die Zahl durch die 2 geteilt, dann nochmal… und wenn mit 2 keine restfreie Division mehr möglich ist wird die 3 probiert usw.
Dazu habe ich bei einer früheren Implementierung eine Liste von Primzahlen erstellen lassen, die kleiner sind als die betrachtete Zahl, das hat mintunter extrem lange gedauert!
Oft sind aber garkeine großen Primzahlen nötig, zB:

118918800=2^4\cdot 3^3\cdot 5^2\cdot 7\cdot 11^2\cdot 13

Daher wird jetzt immer erst dann eine neue Primzahl erzeugt, wenn eine gebraucht wird, weil keine restlose Division mehr möglich ist.

Ich weiß nicht obs euch hilft, aber in Python sieht das dann so aus:

def __primGenerator(n):
yield 2
for i in range(3,n+1,2):
for j in range(3,i//2,2):
if i%j==0:
break
else:
yield i

def primFaktorisierung(n):
teiler=[]
gen=__primGenerator(n)
while n!=1:
i=next(gen)
while n%i==0:
teiler.append(i)
n/=i
return teiler
Ich hoffe ihr seht warum ich die Verwendung des Generators so gern beibehalten möchte…
Gibt es eetwas ähnliche in Java oder eine andere schöne Möglichkeit diesen Ansatz zu verfolgen?

LG
elactic

Hallo!

ich komme eigentlich aus der Python Ecke, zwinge mich aber
Sachen in Java zu schreiben,

Jaaa, das kenn’ ich. Hin und wieder guckt man sich neue Sprachen an und denkt, sehr schön, aber Python ist das leider alles nicht.

Ich kann dir nur die Infos von Wikipedia anbieten:
http://en.wikipedia.org/wiki/Generator_%28computer_p…
Da sind einige Links zu Implementierungen. Vielleicht findest du da was.

Gruß
Jan

Hin und wieder guckt man sich neue
Sprachen an und denkt, sehr schön, aber Python ist das leider
alles nicht.

WAAAAAS Python ist das beste wo gibt! :wink:

Ich kann dir nur die Infos von Wikipedia anbieten:
http://en.wikipedia.org/wiki/Generator_%28computer_p…
Da sind einige Links zu Implementierungen. Vielleicht findest
du da was.

Öhm ja in der Tat - vielen Dank!
Ich dachte eigentlich ich hätte Goggle genug bemüht =)
Schönes Rest Ostern noch!

Hallo!

Hin und wieder guckt man sich neue
Sprachen an und denkt, sehr schön, aber Python ist das leider
alles nicht.

WAAAAAS Python ist das beste wo gibt! :wink:

Sag ich doch. War das missverständlich?

Jan

Ahh ok falsch gelesen, ich dachte:
Python ist das nicht(schön).
Naja Solange wir da einer Meinung sind :wink:
Ciao