码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-02 14:56:56      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

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

 

 

 

 执行结果:技术分享

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

标签:

原文地址:http://www.cnblogs.com/fshmjl/p/4546182.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!