(最大质因子)小明有N(1<=N<=5000)个正整数(每个数都不超过20000),他想要从中找出一个含有最大质因子的数。例如10,含有2和5两个质因子;31,含有31这个质因子。
样例输入:
4
36
38
40
42
样例输出:
38 //38含有最大质因子19
var
prime:array[1..20000]of boolean;
a,i,j,n,max,maxnum:word;
procedure create;
var
i,j:word;
begin
fillchar(prime,sizeof(prime),true);
prime[1]:=false;
for i:=2 to 20000 do
for j:=2 to trunc(sqrt(i))do
if i mod j=0 then
begin
_prime[i]:=true_ ;
break;
end;
end;
begin
create;
readln(n);
for i:=1 to n do
begin
readln(a);
for j:= __j:=a downto 2__ do
if(a mod j=0)and( __prime[j]__ )then break;
if _j>max__ then begin max:=j;maxnum:=a;end;
end;
write( __maxnum__ );
readln;
end.