博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

寻找质因数

Posted on 2010-10-31 23:35  桃子在路上  阅读(593)  评论(0编辑  收藏  举报

寻找质因数

描述 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.

注意初始化。