2个回答
2015-09-05
展开全部
希望lz能看好我的代码,思路是:枚举i,j分别表示a,b的值,然后求出a,b的因子看是否符合要求,前提(a<>b),代码:
var
i,j,k,a,b,tot:Longint;
begin
for i:=4 to 1000 do
begin
a:=1;
b:=1;
for k:=2 to i-1 do //您的题目描述不清楚,按照这个题目的要求,因子必须是不包含它本身,否则无解。
if i mod k=0 then inc(a,k); //求出i的因子a
for k:=2 to a-1 do
if a mod k=0 then inc(b,k); //求出a的因子b
if (a<>b) and (b=i) then
begin
writeln(i); //判断条件
inc(tot);
end;
end;
writeln('ans=',tot);
end.
//1000以内输出结果:
220
284
ans=2
//10000以内输出结果:
220
284
1184
1210
2620
2924
5020
5564
6232
6368
ans=10
代码和输出结果就是这样了,望采纳!不懂欢迎追问
展开全部
var i,j,ans,ans2:integer;a:array[0..10000] of 0..1;
BEGIN
for i:=2 to 1000 do
if a[i]=0 then
begin
ans:=0;ans2:=0;
for j:=2 to i-1 do
if i mod j=0 then ans:=ans+j;
if (ans=i) then break;
for j:=2 to ans-1 do
if ans mod j=0 then ans2:=ans2+j;
if (ans2=i) then
begin
writeln(i,' ',ans);
a[i]:=1;
a[ans]:=1;
end;
end;
END.
BEGIN
for i:=2 to 1000 do
if a[i]=0 then
begin
ans:=0;ans2:=0;
for j:=2 to i-1 do
if i mod j=0 then ans:=ans+j;
if (ans=i) then break;
for j:=2 to ans-1 do
if ans mod j=0 then ans2:=ans2+j;
if (ans2=i) then
begin
writeln(i,' ',ans);
a[i]:=1;
a[ans]:=1;
end;
end;
END.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询