求1000以内的所有完数

作者&投稿:刀奚 (若有异议请与网页底部的电邮联系)

#include <stdio.h>
void main()
{
int i,j;
printf("1000之内的所有完数:
");
for(i=6;i<1000;i++){

int sum=0;

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

if(i%j==0)

sum = sum+j;

}
if(sum==i)printf("%d,",i);

}

}

输出结果为:6,28,496

原代码中的sum 初始化的位置是错误的,导致结果不正确,正确代码请看我的回答。

扩展资料:

完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。

求1000以内的完数可以用C,C++、java和Pascal语言等,下面举例java语言实现代码。

用java编写1000以内的完数如下:

public class PerfectNumber {    public static void main(String[] args) {    System.out.println("1000以内的所有完数有:");    for (int i = 2; i < 1000; i++) {// 遍历1000以内的所有整数      int sum = 0;// 定义和变量      for (int j = 1; j < i; j++) {        if (i % j == 0) {// 满足是i的因子,就累加          sum += j;        }      }      if (sum == i) {// 满足因子之和等于i就打印该完数        System.out.print(i + " ");      }    }  }}

~

用C语言编程找出1000以内的所有完数。(涉及知识点:for语句和if语句...
答:一个数,所有的真因子(即除了自身以外的约数)的和,恰好等于本身,称为完数。所以,要确认是否为完数,只要把所有真因子相加判断即可。于是,这个题目的编程思路为:1 遍历1~1000;2 对每个数,判断是否为完数,如是,则输出;3 程序结束。代码如下:include <stdio.h>int main(){ int n, i...

C语言题目 编程 找出1000以内的所有”完数“,所谓”完数“是指一个数...
答:include<stdio.h> int main(){ int i,j,s;for(i=2;i<=1000;i++){ s=1;for(j=2;j<=i/2;j++)if(i%j==0)s+=j;if(s==i)printf("%d\n",i);} getch();return 0;}

C++编程序找出1000以内的所有完数并输出其因子
答:根据这个条件,判断完数并不难。比如要判断一个数A是否完数,可以用一个循环,从1到(A-1),逐个找出A的因子,并把所有的因子累加起来,最后再和A比较看是否相等,相等就是完数,不相等就不是完数。可以单独写一个判断完数的函数,然后再用一个循环从0-1000,找出1000以内的完数,并完成输出就可以了...

打印1000以内的完数,完数指所有因子之和等于它本身的数。用C语言。_百...
答:// 本程序演示一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数 include"stdio.h"main(){ int i,j,s,sum;printf("完数:\n") ;sum=0;for(i=2;i<=1000;i++){ s=0; ;//此处s=0一定要加,因为前几次循环的时候s的值已经改变 ...

1000以内的完数有哪些?
答:完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)\r\n求1000以内的完数的C语言代码如下: \r\n#include \r\nint main() \r\n{ \r\nint n=1000; \r\nint r,j,i; \r\nfor(i=1;i<=n; i++)...

...这个数就称为“完数”,请编程找出1000以内的所有完数
答:下回提问写清楚要会哪些语言。求1000以内的完数的C语言代码如下:include<Stdio.h> voidmain(){ intm,i,s;for(m=1;m<=1000;m++){ s=0;for(i=1;i<m;i++)if(m%i==0)s=s+i;if(s==m)printf("%d,",s);} } 输出结果为:6,28,496,即1000以内的完数只有6、28、496三个数字...

找出1000以内的所有完数python
答:如果一个数恰好等于它的真因子之和,则称该数为“完全数” [2] 。各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,...

JAVA编程题:找出1000以内的完数:一个数如果恰好等于它的因子之和,这个...
答:int sum = 0;//因子总和 for (int j = 1; (j * j) <= i; j++) {//j做除数,√n复杂度,减少一半的计算量 if (i % j == 0) {//可以整除,为其因子 sum = j + (i / j) + sum;//因子之和 } } if ((sum - i) == i) cout << "1000以内的完数:" << i <...

...完数”。例如6=1+2+3.编程找出1000以内的所有完数
答:c语言一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数 #include<stdio.h> void main() { int i,j,sum=1; for(i=3;i<=1000;i++) { sum=1; for(j=2;j

用C语言找出1000以内的完数。
答:用C语言输出1000以内所有的完数步骤如下:1、首先打开vc6.0,新建一个项目。2、添加头文件。3、添加main函数。4、定义i,j,k,n,sum。5、定义一个数组。6、使用第一层for循环。7、使用第二层for循环,用来求出每位的数字。8、使用if条件判断语句。9、运行程序看看结果。