下面给出备战今年的基本算法,这些是必须过关的!!
一、数论算法
1.求两数的最大公约数
functiongcd(a,b:integer):integer;
begin 
 if b=0 then gcd:=a
  else gcd:=gcd (b,a mod b);
end ;
2.求两数的最小公倍数
functionlcm(a,b:integer):integer;
begin
 if a0 do inc(lcm,a);
end;
3.素数的求法
A.小范围内判断一个数是否为质数:
function prime (n: integer): Boolean;
 var I: integer;
 begin
  for I:=2 to trunc(sqrt(n)) do
  if n mod I=0 then begin 
 prime:=false; exit;
  end;
 prime:=true;
 end;
B.判断longint范围内的数是否为素数(包含求50000以内的素数表):
 procedure getprime;
  var 
  i,j:longint;
  p:array[1..50000] of boolean;
 begin
  fillchar(p,sizeof(p),true);
p[1]:=false;
i:=2;
while i

