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
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
#1213 - Software - Student hbo