首页 > 其他分享 >完数

完数

时间:2023-04-23 11:45:07浏览次数:23  
标签:cout int namespace 因子 循环 完数

完数:

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

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

解题思路:先输入上限,再根据for循环嵌套外层循环遍历所求范围,内层循环寻找因子,再根据条件判断是否为因子,记录因子之和与该数是否相等,判断是否输出。

代码:

#include<iostream>

using namespace std;

int main()

{

    int i,j,n,x;

    cout<<"请输入所选范围上限:";

    cin>>n;

    for(i=2;i<=n+1;i++)

    {

        x=0;

        for(j=1;j<i;j++)

        {

            if(i%j==0)

                x+=j;

        }

        if(i==x)

            cout<<"It's a perfect number:"<<i<<endl;

    }

    return 0;

}

拓展:

对于一个整数来说,其最大因子为n/2,所以可以判断因子的循环范围为1~2/n

代码:

#include<iostream>

using namespace std;

int main()

{

    int i,j,n,x;

    cout<<"请输入所选范围上限:";

    cin>>n;

    for(i=2;i<=n;i++)

    {

        x=0;

        for(j=1;j<=i/2;j++)

        {

            if(i%j==0)

                x+=j;

        }

        if(i==x)

            cout<<"It's a perfect number:"<<i<<endl;

    }

    return 0;

}

 

标签:cout,int,namespace,因子,循环,完数
From: https://www.cnblogs.com/zljzy/p/17346058.html

相关文章