测试 1s内可以通过10的9次方2497558338思想:因为一个数的一对因数必定是一大一小,小的因数最大值不会超过根号下(n)所以,穷举小的因数,时间代价是O(SQRT(N)) 注:int64是free pascal下的整数类型,比longint大varn,m,i:longint;ans:int64;beginread(n);m:=trunc(sqrt(n));ans:=0;for i:=1 to m do
if n mod i =0 then
ans:=ans+i+(n div i);if (m*m)=n then ans:=ans-m;writeln(ans);...
Var i,n,sum,j:integer;a:array[1..200]of boolean;beginread(n);sum:=0;for i:=1 to n do a:=false;for j:=1 to n doif n div j=0 then a[j]:=true;for i:=1 to n do if a[...