SDOI2012Longge的问题

2705: [SDOI2012]Longge的问题

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 930  Solved: 601
[Submit][Status]

Description

Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题。现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N)。

Input

一个整数,为N。

Output

一个整数,为所求的答案。

Sample Input

6

Sample Output

15

HINT

【数据范围】

对于60%的数据,0<N<=2^16。

对于100%的数据,0<N<=2^32。

题解:

SDOI2012Longge的问题

代码:

 var i:longint;
n,k,ans:int64;
procedure main;
begin
readln(n);
ans:=n;
for i:= to trunc(sqrt(n)) do
if n mod i= then
begin
k:=;
while n mod i= do
begin
inc(k);
n:=n div i;
end;
inc(ans,ans*(i-)*k div i);
end;
if n<> then inc(ans,ans*(n-)* div n);
writeln(ans);
end;
begin
main;
end.
上一篇:javaShop的一些总结


下一篇:http自动跳转https小记