你家的面包 2009-06-22 03:56:00
点我顶贴
收藏
删除
var a,b,t,i:longint;
function qh(x:longint):longint;
var j,s:longint;
begin
s:=0;
for j:=1 to x div 2 do
if x mod j=0 then s:=s+j;
qh:=s;
end;
begin
readln(a,b);
for i:=a to b do
if (qh(qh(i))=i)and(qh(i)>i) then t:=t+1;
writeln(t);
end.
竟然只过两个点,拜托大家帮帮忙吧。
#2 hades@2009-06-22 03:56:00
11995
回复
删除
晒程序
program sd;
var
ans:longint;
i,j,k,m,n,l,t,y:longint;
function deal(x:longint):longint;
var
i,j,k:longint;
begin
j:=1;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then j:=j+i+(x div i);
deal:=j;
end;
begin
readln(n,m);
for i:=n to m do
begin
y:=deal(i);
if (y>i) then
begin
l:=deal(y);
if l=i then
inc(ans);
end;
end;
writeln(ans);
end.