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

it2022-05-09  36

 一个数如果恰好等于它的因子之和,这个数就称为“完数。例如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 }

 

 

 

 执行结果:

转载于:https://www.cnblogs.com/fshmjl/p/4546182.html


最新回复(0)