當前位置:編程學習大全網 - 編程軟體 - 求1000以內的所有完數

求1000以內的所有完數

#include <stdio.h>

void main()

{

int i,j;

printf("1000之內的所有完數:\n");

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 + " ");?}}?}}

  • 上一篇:西門子simatic net是用來做什麽
  • 下一篇:溫哥華最好的私立小學
  • copyright 2024編程學習大全網