1 【NOI】算法大全(已更新) 一、数论算法 1.求两数的最大公约数 function gcd(a,b:integer):integer; begin if b=0 then gcd:=a else gcd:=gcd (b,a mod b); end ; 2.求两数的最小公倍数 function lcm(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