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

 

 

 

 执行结果:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值