Witam, na zadanie miałem program który policzy czas wyłapywania liczb pierwszych za pomoca sita eratostenesa.
Napisałem to tak, ze przed algorytmem uzyłem gettime a nastepnie po jego wykonaniu.
Problem w tym, ze po wypisaniu tych czasów pokazuje mi mocno nieprawidłowe wartości. Np róznicę godziny czy 20 minut, choć naprawde to okolo 7 sekund dla miliona liczb. Może ktoś pomóc? załączam kod programu
program liczbypierwsze;
uses dos;
var
tablica:array of boolean;
godz,min,sek,sek100,godz_2,min_2,sek_2,sek100_2:word;
size:longint;
i:longint;
wielokrotnosc:longint;
begin
readln(size);
setlength(tablica,size+1);
gettime(godz,min,sek,sek100);
for i := 2 to size do tablica[i]:=true;
for i := 2 to round(sqrt(size)) do
if tablica[i] then
begin
wielokrotnosc:=i*i;
while (wielokrotnosc <= size) do
begin
tablica[wielokrotnosc]:=false;
inc(wielokrotnosc,i);
end;
end;
for i:=2 to size do
if tablica[i] then write(i,' ');
gettime(godz_2,sek_2,min_2,sek100_2);
writeln;
writeln('____________________________________');
writeln('czas 1 ',godz,':',min,':',sek,':',sek100);
writeln('czas 2 ',godz_2,':',min_2,':',sek_2,':',sek100_2);
readln;
end.
sformatowanie posta, zmiana tytułu wątku oraz poprawienie tagów - fp