De digitale vraagbaak voor het wiskundeonderwijs

home |  vandaag |  gisteren |  bijzonder |  gastenboek |  wie is wie? |  verhalen |  contact

HOME

samengevat
vragen bekijken
een vraag stellen
hulpjes
zoeken
FAQ
links
twitter
boeken
help

inloggen

colofon

  \require{AMSmath} 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

Wie is wie?
Vragen naar aanleiding van dit antwoord? Klik rechts..!
vrijdag 25 januari 2002



home |  vandaag |  bijzonder |  gastenboek |  statistieken |  wie is wie? |  verhalen |  colofon

©2001-2024 WisFaq - versie 3