一個數如果恰好等於它的因子之和,這個數就稱為“完數。例如6=1+2+3.編程找出1000以內的所有完數。


 一個數如果恰好等於它的因子之和,這個數就稱為“完數。例如6=1+2+3.編程找出1000以內的所有完數。

 1  #import <Foundation/Foundation.h> // C語言這個地方是#include<stdio.h>
 2 
 3  int main( int argc,  const  char * argv[]) {
 4     @autoreleasepool {
 5  int zhi= 0,i= 1,ax= 0;
 6          int nu[ 50]={};
 7          while (i< 1000) {
 8              for ( int j= 1; j<=i/ 2; j++) {
 9                  if (!(i%j)) { // 能整除執行
10                       // printf("%d  ",j);
11                     zhi+=j;
12                      if (zhi==i&&j>=i/ 2) { // 如果i是偶數判斷到i/2
13                           // printf("這個數%d是完數,計算的和是:%d\n",i,zhi);
14                         nu[ax]=i;
15                         ax++;
16                     }
17                 }
18                  if (i% 2== 0&&j>=i/ 2) { // 如果是奇數判斷到(i-1)/2
19                     zhi= 0; // printf("j已經大於i的一半了0000:i===%d\n",i);
20                 }
21                  if (i% 2!= 0&&j>=(i- 1)/ 2) {
22                     zhi= 0; // printf("j已經大於i的一半了1111:i===%d\n",i);
23                     printf( " \n ");
24                 }
25             }
26             i++;
27             
28         }
29         printf( " 1到1000以內的完數分別是: ");
30          for ( int i= 0; nu[i]!= 0; i++) {
31             printf( " %d、 ",nu[i]);
32         }
33      }
34      return  0;
35 }

 

 

 

 執行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM