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 }
执行结果: