打卡

1.问题:

求某一范围内完数的个数。

如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而 6=1+2+3,因此6是“完数”。

2.思路:将变量i从1开始自增至目标数的一半,并判断目标数是否能被i整除,并将符合条件的因子求和判断是否和目标数等同。

3.程序流程图:

 

4.代码实现:

#include <iostream>
using namespace std;

int fact(int x)
{
int k=0;
for(int i=1;i<=(x/2);i++){
if(x%i==0)
k=k+i;
}
if(k==x)
return 1;
else
return 0;
}
int main()
{
int N1,N2;
cin>>N1>>N2;
int count=0;
for(int i=N1;i<=N2;i++){
if(fact(i)){
cout<<i<<"是完全数"<<endl;
}
}
return 0;
}

posted @ 2023-05-14 20:19  £剑影メ随见彡  阅读(20)  评论(0)    收藏  举报