pascal编程:公约数的和
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/07 21:17:27
pascal编程:公约数的和
有一天,TIBBAR和LXL比赛谁先算出1~N这N个数中每任意两个不同的数的最大公约数的和.LXL还在敲一个复杂而冗长的程序,争取能在100s内出解.而TIBBAR则直接想1s秒过而获得完胜,请你帮他完成这个任务.
输入格式
共一行,一个正整数N.
输出格式
共一行,一个数,为1~N这N个数中每任意两个不同的数的最大公约数的和.
样例输入
10
样例输出
67
有一天,TIBBAR和LXL比赛谁先算出1~N这N个数中每任意两个不同的数的最大公约数的和.LXL还在敲一个复杂而冗长的程序,争取能在100s内出解.而TIBBAR则直接想1s秒过而获得完胜,请你帮他完成这个任务.
输入格式
共一行,一个正整数N.
输出格式
共一行,一个数,为1~N这N个数中每任意两个不同的数的最大公约数的和.
样例输入
10
样例输出
67
var
i,j,n:longint;
ans:int64;
function gcd(a,b:longint):longint;
begin
if b=0 then exit(a)
else exit(gcd(b,a mod b));
end;
begin
readln(n);
for i:=2 to n do
for j:=1 to i-1 do
ans:=ans+gcd(i,j);
writeln(ans);
end.
i,j,n:longint;
ans:int64;
function gcd(a,b:longint):longint;
begin
if b=0 then exit(a)
else exit(gcd(b,a mod b));
end;
begin
readln(n);
for i:=2 to n do
for j:=1 to i-1 do
ans:=ans+gcd(i,j);
writeln(ans);
end.