请教一道free pascal题:选数(select.pas)【问题描述】已知 n 个整数 x1,x2,…,xn.从 n 个整数中任选 2 个整数相加,可得到一系列的和.例如当 n=4,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 19:41:14
请教一道free pascal题:选数(select.pas)【问题描述】已知 n 个整数 x1,x2,…,xn.从 n 个整数中任选 2 个整数相加,可得到一系列的和.例如当 n=4,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和

请教一道free pascal题:选数(select.pas)【问题描述】已知 n 个整数 x1,x2,…,xn.从 n 个整数中任选 2 个整数相加,可得到一系列的和.例如当 n=4,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和
请教一道free pascal题:
选数(select.pas)
【问题描述】
已知 n 个整数 x1,x2,…,xn.从 n 个整数中任选 2 个整数相加,可得到一系列的和.例如当 n=4,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:
3+7=10 3+12=15 3+19=22 7+12=19 7+19=26 12+19=31
现在,要求你计算出和为素数共有多少种.
例如上例,有两种的和为素数:7+12=19 12+19=31.
【输入文件】select.in
共两行,第一行为:n (1≤n≤100);
第二行为:x1 x2 … xn (1≤xi≤106)(数与数之间以空格分隔)
【输出文件】select.out
一个整数(满足条件的和的种数).
【样例输入】
4
3 7 1219
【样例输出】
2

请教一道free pascal题:选数(select.pas)【问题描述】已知 n 个整数 x1,x2,…,xn.从 n 个整数中任选 2 个整数相加,可得到一系列的和.例如当 n=4,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和
var
n,ans:longint;
a:array [1..100] of longint;
function check(p:longint):boolean;//判断p是否为素数,是则返回true,不是则返回false
var
i:longint;
t:boolean;
begin
t:=true;
for i:=2 to trunc(sqrt(p)) do
if p mod i=0 then
begin
t:=false;
break;
end;
exit(t);
end;
procedure work;
var
i,j:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
ans:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if check(a[i]+a[j]) then inc(ans);//枚举两两的组合,如果和是素数则答案加一
writeln(ans);
end;
begin
//openfile;
work;
//closefile;
end.
如果需要文件输入输出的话那两个过程openfile和closefile就自己打了~
现码的程序,你看看对不对~
满意望采纳谢谢!