Einzelnen Beitrag anzeigen

pyromane

Registriert seit: 5. Sep 2007
15 Beiträge
 
#11

Re: Neue Aufgabe: Primfaktorzerlegung

  Alt 23. Apr 2008, 18:22
naja mit Longint reicht aus ... hab ich gemerkt 1.000.000.000 dauert schon ne Weile

nächstes Problem:

(is jetzt in Pascal... ich schreib die Testprogramme immer dort, da ja die Programmiersprache dieselbe ist, es zur Veranschaulichung viel schneller zu schreiben geht, als immer erst ne Form zusammenklicken zu müssen)
Delphi-Quellcode:
program Teiler;
uses crt;

type prim=array[1..30] of Integer;
type haeuf=array[1..30] of integer;

var n:longint;
     h:prim;
     p:haeuf;


procedure primfak(n:longint;var p:prim; var h:haeuf);

var t,w:longint;
    diff,i:integer;
begin
  for i:=1 to 30 do h[i]:=0;

  i:=0;

  for t:=2 to 3 do
    if (n mod t=0) then
      begin
        i:=i+1;
        p[i]:=t;
        while n mod t=0 do
          begin n:=n div t;
          h[i]:=h[i]+1
        end
  end;
  t:=5;
  diff:=2;
  w:=round(sqrt(n));
  while t<=w do
    begin
      if (n mod t = 0) then
        begin i:=i+1;
        p[i]:=t;
        while n mod t=0 do
          begin
            n:=n div t;
            h[i]:=h[i]+1
          end
       end;
    t:=t+diff;
    diff:=6-diff;
    end;
  if n>1 then
    begin
      i:=i+1;
      p[i]:=n;
      h[i]:=h[i]+1
    end;

   for i:=0 to 30 do
     begin
       writeln(p[i],'*',h[i]);
     end;

end;


Begin

clrscr;
writeln('Zahl, die in ihre Primfaktoren zerlegt werden soll: ');
readln(n);
writeln;
primfak(n,h,p);
writeln;
readln;
end.
--> Primfaktorzerlegung.

-> er bricht immer mit dem Exitcode 201 ab, doch ich kann keinen Fehler erkenn. Kann mit nur vorstellen, dass ich die eigentlich noch nicht benutzen "Array-Variablen" h und p falsch übergebe.
mfg Pyromane
Angehängte Dateien
Dateityp: pas teiler_628.pas (1,1 KB, 3x aufgerufen)