一个数如果恰好等于它的因子之和,这个数就称为“完数。例如6=1+2+3.编程找出1000以内的所有完数。
2015-06-02 13:23
429 查看
一个数如果恰好等于它的因子之和,这个数就称为“完数。例如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)) {//能整除执行
//printf("%d ",j);
zhi+=j;
if (zhi==i&&j>=i/2) {//如果i是偶数判断到i/2
//printf("这个数%d是完数,计算的和是:%d\n",i,zhi);
nu[ax]=i;
ax++;
}
}
if (i%2==0&&j>=i/2) {//如果是奇数判断到(i-1)/2
zhi=0;//printf("j已经大于i的一半了0000:i===%d\n",i);
}
if (i%2!=0&&j>=(i-1)/2) {
zhi=0;//printf("j已经大于i的一半了1111:i===%d\n",i);
printf("\n");
}
}
i++;
}
printf("1到1000以内的完数分别是:");
for (int i=0; nu[i]!=0; i++) {
printf("%d、",nu[i]);
}
}
return 0;
}
执行结果:
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)) {//能整除执行
//printf("%d ",j);
zhi+=j;
if (zhi==i&&j>=i/2) {//如果i是偶数判断到i/2
//printf("这个数%d是完数,计算的和是:%d\n",i,zhi);
nu[ax]=i;
ax++;
}
}
if (i%2==0&&j>=i/2) {//如果是奇数判断到(i-1)/2
zhi=0;//printf("j已经大于i的一半了0000:i===%d\n",i);
}
if (i%2!=0&&j>=(i-1)/2) {
zhi=0;//printf("j已经大于i的一半了1111:i===%d\n",i);
printf("\n");
}
}
i++;
}
printf("1到1000以内的完数分别是:");
for (int i=0; nu[i]!=0; i++) {
printf("%d、",nu[i]);
}
}
return 0;
}
执行结果:
相关文章推荐
- git远程共享库push代码出错
- java事件处理机制
- php异常处理—设置顶层异常处理器
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- java基础(一)
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- php异常处理—重新抛出异常
- C语言再学习——数组
- Yaf(Yet Another Framework)用户手册 yii框架手册
- C语言再学习——数据类型
- Java Bean validation specification...
- C语言再学习——分支结构
- php异常处理—多个异常
- C语言再学习——常量和变量
- Java多线程系列--“JUC原子类”02之 AtomicLong原子类
- java通过反射 寻找配置文件 调用方法
- C语言再学习——C语言中进制之间的转换
- 删除Python UserWarning[已解决]
- R语言实现随机森林代码
- Java多线程系列--“JUC原子类”01之 框架