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