Einzelnen Beitrag anzeigen

fLaSh11
(Gast)

n/a Beiträge
 
#27

Re: Primfaktorzerlegung läuft viel zu langsam...

  Alt 28. Feb 2007, 20:12
Das hier ist ein sauschneller Code für eine Primfaktorzerlegung:
(ist halt Konsole, aber mit sehr wenig Arbeitsaufwand umzuwandeln...)

Delphi-Quellcode:

label
  lbl1,lbl2,lbl3,lbl4,lbl5,lbl6,lbl7,lbl8,lbl9;

var
  a,b: Integer;
  c: Extended;

begin
goto lbl2;

lbl1:
writeln('2');
a:=a div 2;
if a=1 then goto lbl9;

lbl2:
if frac(a/2)=0 then goto lbl1;
b:=3;

lbl3:
c:=sqrt(a)+1;

lbl4:
if b>=c then goto lbl8;
if frac(a/b)=0 then goto lbl6;

lbl5:
b:=b+2;
goto lbl4;

lbl6:
if a/b*b-a=0 then goto lbl7;
goto lbl5;

lbl7:
writeln(IntToStr(b));
a:=a div b;
goto lbl3;

lbl8:
writeln(IntToStr(a));

lbl9:
readln;
(ist unübersichtlich aber schnell)

//Edit1: Ich hab vergessen zu erwähnen, dass a die zu zerlegende Zahl ist!
//Edit2: Weiß jemand, ob ich das veröffentlichen darf, denn es war im Handbuch meines GTRs in Basic abgedruckt, habs eig. nur in Delphi verwandelt
  Mit Zitat antworten Zitat