寻找质因数
描述 Description
给出N个数字,试求质因数最大的数字。
输入格式 Input Format
第一行,一个整数N,表示数字个数。
接下来N行,每行一个整数A_i,表示给出的数字。
输出格式 Output Format
一个整数,表示质因数最大的数字。
样例输入 Sample Input
4 36 38 40 42
样例输出 Sample Output
38
时间限制 Time Limitation
1s
注释 Hint
N <= 5000 , A_i <= 20000
举例 38和12
38=19*2
12=2*3*3
38最大的是19
12最大的是3
所以本数据要输出38
=====================================================================
var
i,j,k,n,max,x:longint;
function check1(x:longint):boolean;
var
i:longint;
begin
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then exit(false);
exit(true);
end;
procedure check2(x:longint);
var
i:longint;
begin
for i:=x downto trunc(sqrt(x)) do质因数包括他本身
if (x mod i=0) and (check1(i)) then
begin
if max<i then
begin
max:=i;
k:=x;
end;
exit;
end;
end;
begin
max:=0;
k:=0;
readln(n);
for i:=1 to n do
begin
readln(x);
check2(x);
end;
writeln(k);
end.
注意初始化。