Einzelnen Beitrag anzeigen

Benutzerbild von HAF4ever
HAF4ever

Registriert seit: 31. Okt 2003
Ort: Enns - Österreich
37 Beiträge
 
#1

Primfaktorzerlegung

  Alt 31. Okt 2003, 10:40
Hier mal ein Code, wie man eine Zahl in ihre Primfaktoren zerlegen kann.
Die Ausgabe erfolgt in der Form 2*2,2*5 (z.B .für 100).

Delphi-Quellcode:
program Primfaktorzerlegung;
  {$APPTYPE CONSOLE}
uses
  SysUtils;

var
   value: Integer;

{die Funktion, die testen ob eine Zahl eine Primzahl ist}
function isPrime(x: integer): Boolean;
var
  i: Integer;
begin
  isPrime := true;
  for i := 2 to x-1 do
    if x mod i = 0 then isPrime := false
end;

{die Prozedur, zerlegt die Zahl in die Primfaktoren und
gibt sie gleichzeitig aus}

procedure PrintPrimeFactors(x: Integer);
var
  i, j: Integer;
begin
  for i := 2 to x do
  begin
    j := 0;
    while x mod i = 0 do
    begin
      x := x div i;
      inc(j)
    end;
    if j > 0 then
    begin
      if j = 1 then write(i) else write(j, '*', i);
      if x <> 1 then write(',')
    end;
  end;
end;

begin
  write('Zahl eingeben: ');
  readln(value);
  PrintPrimeFactors(value);
  readln
end.
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
  Mit Zitat antworten Zitat