写出2到1000的完数,例如6=1+2+3的程序

写出2到1000的完数,例如6=1+2+3的程序

第1个回答  2016-12-12
#include "stdio.h"
int main(void){
    int i,j,m;
    for(i=4;i<1000;i+=2){
        for(m=1,j=2;j*j<=i;j++)
            if(!(i%j))
                m+=(j!=i/j ? j+i/j : j);
        if(m==i){
            printf("%3d = 1",i);
            for((m>>=1)+=1,j=2;j<m;j++)
                if(!(i%j))
                    printf("+%d",j);
            printf("\n");
        }
    }
    return 0;
}

写出2到1000的完数,例如6=1+2+3的程序
int main(void){     int i,j,m;    for(i=4;i<1000;i+=2){         for(m=1,j=2;j*j<=i;j++)        ...

...所有的完数(该数等于其各因子之和),例如:6=1+2+3
int main(){ int n=1000;int r,j,i;for(i=1;i<n; i++){ r = 0;for(j=1;j

...是指一个数是其所有因子之和,如6 = 1 + 2 + 3
sum的位置错了,看图片:

...是指因子之和与它本身相等的数.如6=1+2+3,6是一个完数.
\/\/编程找出1000以内的所有完数:include <stdio.h> void main(){ int x, i, sum;x = 1;while(x <= 1000) { \/\/x要从1到1000循环.sum = 0; \/\/每算一个新的x时,sum要清0 for(i = 1; i < x; i++) if(x % i == 0) sum += i; \/\/如果i是x的因子,sum加...

...这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数...
所谓完全数(又称完美数或完备数),是一种特殊的自然数;它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。 例如6有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6;第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。公元前6世纪的...

...编写程序,计算1000以内所有完数。完数,例:6=1+2+3(循环结构)?_百度...
for (int i = 1; i <= n \/ 2; i++){ if (n%i == 0)sum += i;} if (sum == n)return true;else return false;} int main(){ cout << "1000以内的完数是:" << endl;for (int i = 1; i <= 1000; i++){ if (isw(i)){ cout << i << " ";} } cout <...

C编程求一个数为完数,例如6=1+2+3
int main() { int n=1000;int r=0,j,i;for(i=1;i<=n;i++){r=0; for(j=1;j<i;j++){if(i%j==0){r=r+j;}} if(r==i){cout<<i<<endl;}} return 0;} 其实就是求出一个数的所有因子并加和看是否等于这个数,感觉效率似乎不高。不知道有没有更高效的方法 ...

C++编程,求1000以内的完数并每行按格式输出其因子:6=1+2+3
2013-06-11 6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编... 2 2013-05-05 用C++程序输出1000以内所以的完数,完数是指与其因子之和... 1 2013-05-12 编程序找出1000之内的所有完数,并按下面格式输出其因子;6... 8 2015-11-05 编程序找出1000之内的所有完数,并按下面的格式输出其因子。

...等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.
int main() { for (int i = 2; i <= 1000; i++) {\/\/从2到1000的数 int sum = 0;\/\/因子总和 for (int j = 1; (j * j) <= i; j++) {\/\/j做除数,√n复杂度,减少一半的计算量 if (i % j == 0) {\/\/可以整除,为其因子 sum = j + (i \/ j) + sum;\/\/因子...

...例如6=1+2+3。编程找出1000以内的所有完数。
【答案】:程序源代码如下。main(){ static int k[10];int i,j,n,s:for(j=2;j<1000 j++){ n=-1;s=j;for(i=1;i<j;i++){ if((j%i)==0){ n++;s=s-i;k[n]=i;} } if(s=0){ printf("%d is a wanshu",j);for(j=0;i<n;i++)printf("%d,",k[i]);prin...

相似回答