完数

简介: 【6月更文挑战第8天】完数。

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

include

define N 1000

int main()
{
int i,j,k,n,sum;
int a[256];
for(i=2;i<=N;i++)
{
sum=a[0]=1;
k=0;
for(j=2;j<=(i/2);j++)
{
if(i%j==0)
{
sum+=j;
a[++k]=j;
}

    }
    if(i==sum)
    {
        printf("%d=%d",i,a[0]);
        for(n=1;n<=k;n++)
            printf("+%d",a[n]);
        printf("\n");
    }

}
return 0;

}

以上实例输出结果为:

6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248

目录
相关文章
|
5天前
|
存储
完数
这段代码用于查找1000以内的所有完数,并找出每个完数的因子及其和。完数是指一个数恰好等于其所有因子之和,例如6=1+2+3。代码首先定义了一个`findDivisors`函数来查找某个数的所有因子并计算其和,然后在主函数中遍历2到1000之间的数,利用`findDivisors`函数判断是否为完数,并输出完数及其因子。最后释放分配给因子数组的内存。
15 7
|
6天前
将一个正整数分解质因数
将一个正整数分解质因数。
25 8
|
5天前
|
移动开发 算法
求其最大公约数和最小公倍数
求其最大公约数和最小公倍数。
32 5
|
4月前
|
算法
容斥原理:能被整除的数
容斥原理:能被整除的数
|
4月前
|
机器学习/深度学习
完全平方数
完全平方数.。
44 0
|
4月前
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.
43 0
|
4月前
可被三整除的最大和
【5月更文挑战第5天】可被三整除的最大和
31 0
|
4月前
|
人工智能 Java C++
分解质因数
分解质因数
42 1
|
4月前
|
C++
有效的完全平方数(C++)
有效的完全平方数(C++)
51 0
|
9月前
分解质因数答疑
为什么n % i == 0就是质数 因为在枚举到i之前已经把n中2到i-1的质因子除干净了,此时n中不含2到i-1的质因子,由于n为i的倍数,所以i中也不包含2到i-1的质因子。如果i可以整除前面的i - 1中的数那么i = x * (i - 1),n = x2 * (x * (i - 1)); 矛盾了 为什么只需要枚举到根号N
69 2