|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- int wanshu,yinzi_sum,begin,max,i;
- max = 1000;
- begin =1;
- while(begin<=max)
- {
-
- for(i = 1;i<=begin;i++)
- {
- if(begin%i == 0)
- {
- yinzi_sum = yinzi_sum+i;
- }
- }
- if(begin == yinzi_sum)
- {
- printf("%d为完数\n",begin);
- }
- begin = begin+1;
- }
- }
复制代码
想求1到1000的完数,但是为什么最终结果只输出了1.
- #include<stdio.h>
- int main()
- {
- int wanshu,yinzi_sum,begin,max,i;
- max = 1000;
- begin =1;
- while(begin<=max)
- {
- //因子和要初始化为0
- yinzi_sum = 0;
- //循环结束条件不能 <=begin,否则把begin自己也加进去了,为了减少循环次数,可以写成i<=begin/2
- for(i = 1;i<=begin/2;i++)
- {
-
- if(begin%i == 0)
- {
- yinzi_sum = yinzi_sum+i;
- }
- }
- if(begin == yinzi_sum)
- {
- printf("%d为完数\n",begin);
- }
- begin = begin+1;
- }
- return 0;
- }
复制代码
|
|