盐咸 2021-12-26 23:20 采纳率: 83.3%
浏览 96
已结题

不知道这个错哪里了。

一个正整数的真因子是指导所有能整除它的正整数(不包括自身)。

一个正整数的所有真因子之和等于其本身则被称为完数。

例如:6=1+2+3,6是完数;

而9不是,1也不是。

求在[m,n]之间的完数的个数。
#include "stdio.h"
int main()
{
int m,n,i,j,sum,k=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
if(sum==i)
{
k++;
}
}
}
printf("%d",k);
return 0;
}

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-12-27 00:03
    关注

    修改如下,供对照参考:

    #include "stdio.h"
    int main()
    {
       int m,n,i,j,sum,k=0;
       scanf("%d %d",&m,&n);
       for(i=m;i<=n;i++)
       {
         sum=0;
         for(j=1;j<i;j++)
         {
            if(i%j==0)
            {
               sum+=j;
            }
         }
         if(sum==i)
         {
            k++;
         }
       }
       printf("%d",k);
       return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月26日