\require{AMSmath}
WisFaq - de digitale vraagbaak voor wiskunde en wiskunde onderwijs


Printen

Volmaakte getallen in Turbo Pascal

Ik wil een programma met behulp van turbopascal schrijven, dat alle volmaakte getallen tot 1000 opspoort en laat zien. Maar dit wil maar niet lukken. Help!

Kim
Student hbo - vrijdag 25 januari 2002

Antwoord

Het kan...
PROGRAM Volmaakt;
VAR   n:LONGINT;

FUNCTION isprime(n:LONGINT):BOOLEAN;
var  t:LONGINT;
begin
   isprime:=FALSE;
   FOR t:=2 TO n DO
      if (n MOD t) = 0 then begin
        isprime:=true;
        EXIT
   end;
end;

FUNCTION macht(g,e:LONGINT):LONGINT;
var   t,resultaat:LONGINT;
begin
   resultaat:=1;
   FOR t:=1 TO e DO
      resultaat:=resultaat*g;
    macht:=resultaat
end;

FUNCTION eucl(n:LONGINT):LONGINT;
var   sn, laatste:LONGINT;
begin
   sn:=macht(2,n)-1;
   laatste:=macht(2,n-1);
   if isprime(sn) then eucl:=sn*laatste
   else eucl:=0;
end;

BEGIN
for n:=1 to 16 do
   if eucl(n)<>0 then writeln(n,' -> ',eucl(n));
   READLN
END.
Een minpuntje... als n groter wordt dan 16 gebeurt er iets vreemds... die LONGINT van Turbo Pascal is niet zo lang als ik dacht... misschien een leuk werkje voor jou om dat in het programma te verbeteren!

Zie bron


vrijdag 25 januari 2002

©2001-2024 WisFaq