WisFaq!

\require{AMSmath} geprint op vrijdag 22 november 2024

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
25-1-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 [http://www.pandd.demon.nl/volmaakt.htm]

WvR
25-1-2002


© 2001-2024 WisFaq
WisFaq - de digitale vraagbaak voor het wiskunde onderwijs - http://www.wisfaq.nl

#1213 - Software - Student hbo