C语言的一个问题

[复制链接]
查看11 | 回复0 | 2006-9-28 21:52:28 | 显示全部楼层 |阅读模式
你的错误主要在于对内循环的处理上.当内循环结束后,t应从新为0,例如.当m=3时,不符合条件.下次到4了,此时t应从0开始在记数.main(){int i,m,t=0,n=0;for (m=1;m<=1000;m++)
{t=0;
//t必须为0,要不t 会接着上次的数继续
for(i=1;i<=m/2;i++) //i<m也可,但i<=m/2即可,[m/2,m)之间的
//数肯定没有m的约数,你仔细想想为什么吧.
if (m%i==0) then
t=t+i;
//内循环就这一句.
if(t==m) then
printf("%d,",m);//输出
}}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行