
pascal语言for
题目是如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数.求3000以内的全部亲密数....
题目是 如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数.求3000以内的全部亲密数.
(要求:A < B )
这是我编写的程序
program Project1;
var
a,i,b,E,S:longint;
begin
for a:= 3 to 3000 do
begin
S:=0; E:=0;
for i:=1 to i-1 do
if (a mod i =0) then
S:=S+i;
for b:=1 to S-1 do
if (S mod b =0) then
E:=E+b
end;
if (a=E) and (a<S) then
writeln(a,' ',S);
readln;readln;
end.
请教哪个高手帮我看看错在哪里,演示的时候就是跑不出答案 展开
(要求:A < B )
这是我编写的程序
program Project1;
var
a,i,b,E,S:longint;
begin
for a:= 3 to 3000 do
begin
S:=0; E:=0;
for i:=1 to i-1 do
if (a mod i =0) then
S:=S+i;
for b:=1 to S-1 do
if (S mod b =0) then
E:=E+b
end;
if (a=E) and (a<S) then
writeln(a,' ',S);
readln;readln;
end.
请教哪个高手帮我看看错在哪里,演示的时候就是跑不出答案 展开
2个回答
展开全部
program Project1;
var
a,i,b,E,S:longint;
begin
for a:= 3 to 3000 do
begin
S:=0; E:=0;
for i:=1 to a div 2 do {这里原来的i-1是错了的,a-1也可,只是做了一半无用功 }
if (a mod i =0) then S:=S+i;
for b:=1 to S div 2 do
if (S mod b =0) then E:=E+b;
if (a=E) and (a<S) then writeln(a,' ',S); {这个输出语句必须写在循环内部才行,否则没有输出}
end;
end.
var
a,i,b,E,S:longint;
begin
for a:= 3 to 3000 do
begin
S:=0; E:=0;
for i:=1 to a div 2 do {这里原来的i-1是错了的,a-1也可,只是做了一半无用功 }
if (a mod i =0) then S:=S+i;
for b:=1 to S div 2 do
if (S mod b =0) then E:=E+b;
if (a=E) and (a<S) then writeln(a,' ',S); {这个输出语句必须写在循环内部才行,否则没有输出}
end;
end.
更多追问追答
追问
怎么安排到内部 ,能完完整整写一遍给我看吗
怎么放在内部 还是不可以 能完整写一遍吗
展开全部
循环结束的end放错地方了,而且这个程序效率也有些低,效率问题你自己考虑吧,我只该前面那个问题
program Project1;
var
a,i,b,E,S:longint;
begin
for a:= 3 to 3000 do
begin
S:=0; E:=0;
for i:=1 to i-1 do
if (a mod i =0) then
S:=S+i;
for b:=1 to S-1 do
if (S mod b =0) then
E:=E+b
{这个end;放错了}
if (a=E) and (a<S) then
writeln(a,' ',S);
end;{放在这就对了}
readln;readln;
end.
追问
end;放过去也没用 还是点完演示 输不出亲密数
追答
program Project1;
你写错啦
var
a,i,b,E,S:longint;
begin
for a:= 3 to 3000 do
begin
S:=0; E:=0;
for i:=1 to a-1 do{是a不是i}
if (a mod i =0) then
S:=S+i;
for b:=1 to S-1 do
if (S mod b =0) then
E:=E+b
{这个end;放错了}
if (a=E) and (a<S) then
writeln(a,' ',S);
end;{放在这就对了}
readln;readln;
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询