X mod 3 = a
X mod 5 = b
X mod 7 = c
uses crt;
var
i, j, k: Integer;
c1, c2, c3, a, b, c: Integer;
find: boolean;
begin
clrscr;
write('i = '); readln(i);
write('j = '); readln(j);
write('k = '); readln(k);
find := false;
c1 := 0;
while (c1 < maxint) and not(find) do begin
a := c1 * 3 + i;
c2 := 1;
while (c2 < maxint) and not(find) do begin
b := c2 * 5 + j;
if b > a then break;
c3 := 1;
while (c3 < maxint) and not(find) do begin
c := c3 * 7 + k;
if (c > b) or (c > a) then break;
find := ((a = b) and (a = c));
inc(c3);
end;
inc(c2);
end;
inc(c1);
end;
if find then writeln(a)
else writeln('No found !');
readln;
end.
global := 0;
t1 := GetTickCount;
repeat
while (c1 < maxint) and not(find) do begin
a := c1 * 3 + i;
c2 := 1;
while (c2 < maxint) and not(find) do begin
b := c2 * 5 + j;
if b > a then break;
c3 := 1;
while (c3 < maxint) and not(find) do begin
c := c3 * 7 + k;
if (c > b) or (c > a) then break;
find := ((a = b) and (a = c));
inc(c3);
end;
inc(c2);
end;
inc(c1);
end;
inc(global);
until global = 900000;
writeln('Result = ',a);
t2 := GetTickCount;
writeln('Time1 = ', t2 - t1);
global := 0;
t1 := GetTickCount;
repeat
for p := 1 to maxint do
if (p mod 3 = i) and (p mod 5 = j) and (p mod 7 = k) then break;
inc(global);
until global = 900000;
t2 := GetTickCount;
writeln('Time2 = ', t2 - t1);
writeln('Result = ', p);
uses windows, crt;
var
i, j, k: Integer;
c1, c2, c3, a, b, c,
p, global: Integer;
find: boolean;
T: dword;
begin
clrscr;
write('i = '); readln(i);
write('j = '); readln(j);
write('k = '); readln(k);
T := gettickcount();
global := 0;
repeat
find := false;
c1 := 0;
while (c1 < maxint) and not(find) do begin
a := c1 * 3 + i;
c2 := 1;
while (c2 < maxint) and not(find) do begin
b := c2 * 5 + j;
if b > a then break;
c3 := 1;
while (c3 < maxint) and not(find) do begin
c := c3 * 7 + k;
if (c > b) or (c > a) then break;
find := ((a = b) and (a = c));
inc(c3);
end;
inc(c2);
end;
inc(c1);
end;
inc(global);
until global = 900000;
if find then writeln(a)
else writeln('No found !');
writeln('klem1:: Time = ', gettickcount() - T);
T := GetTickCount();
global := 0;
repeat
for p := 1 to maxint do
if (p mod 3 = i) and (p mod 5 = j) and (p mod 7 = k) then break;
inc(global);
until (global = 900000);
writeln('Result = ', p);
writeln('klem2:: Time = ', gettickcount() - T);
readln;
end.