| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 zxq01 于 2020-2-11 14:51 编辑  
 
原题是   一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程 
找出1000以内的所有完数。 
 
 
- #include "stdio.h"
 
 - #include "conio.h"
 
 - void main()
 
 - {
 
 -         int i,j,t;
 
 -         for(i = 2;i <= 1000;i++)
 
 -         {
 
 -                 t=i;
 
 -                 for(j = 1;j < i;j++)
 
 -                 {
 
 -                         if((i % j) == 0)
 
 -                         {
 
 -                                 t=t-j;
 
 -                         }
 
 -                 }
 
 -                 if(t == 0)
 
 -                 {
 
 -                         printf("%d\n",i);
 
 -                 }
 
 -         }
 
 - }
 
 
  复制代码- #include "stdio.h"
 
 - #include "conio.h"
 
 - void main()
 
 - {
 
 -         int i,j,t=0;
 
 -         for(i = 2;i <= 1000;i++)
 
 -         {
 
 -                 
 
 -                 for(j = 1;j < i;j++)
 
 -                 {
 
 -                         if((i % j) == 0)
 
 -                         {
 
 -                                 t=t+j;
 
 -                         }
 
 -                 }
 
 -                 if(t == i)
 
 -                 {
 
 -                         printf("%d\n",i);
 
 -                 }
 
 -         }
 
 - }
 
 
  复制代码 
- #include "stdio.h"
 
 - #include "conio.h"
 
 - void main()
 
 - {
 
 -         int i,j,t=0;
 
 -         for(i = 2;i <= 1000;i++)
 
 -         {
 
 -                 
 
 -                 for(j = 1;j < i;j++)
 
 -                 {
 
 -                         if((i % j) == 0)
 
 -                         {
 
 -                                 t=t+j;
 
 -                         }
 
 -                 }
 
 -                 if(t == i)
 
 -                 {
 
 -                         printf("%d\n",i);
 
 -                 }
 
 -         }
 
 - }
 
 
  复制代码
少了一个代码
 -           int          i,j,t=0;
 
 -         for(i = 2;i <= 1000;i++)
 
 -         {
 
 -                 
 
 -                 for(j = 1;j < i;j++)
 
 -                 {
 
 -                         if((i % j) == 0)
 
 -                         {
 
 -                                 t=t+j;
 
 -                         }
 
 -                 }
 
 -                 if(t == i)
 
 -                 {
 
 -                         printf("%d\n",i);
 
 -                 }
 
 -                                 t=0;
 
 -         }
 
  复制代码
这样子就行了 
不然这个t一直有值,怎么可能相等呢  
 
 
 |   
 
 
 
 |