解题思路:

1、定义一个变量 n用来存放键盘输入的值。

2、定义一个X轴循环起点i=2,当i<=n时,每个i值都要除以从i到i-1的每个数。选择while结构执行X轴循环。

3、定义一个Y轴循环起点j=1,当j<i时,i要除以i到j的每个数。选择while结构执行一轴循环。


i=2i=3i=4i=5i=6....
j=1执行执行执行执行执行....
j=2不执行执行执行执行执行....
j=3
不执行执行执行执行...
j=4

不执行执行执行...
j=5


不执行执行...

4、在Y轴循环体内选择if结构用“%”来判断i%j的值,如果这个值==0,将j的值累加到变量sum中。然后j++;

5、判断sum中的结果是否等于i,如果是则为完数, {printf("%d its factors are ",sum);

6、定义一个a=1,作为输出完数因子的循环起点。选择while循环

       if(sum%a==0)

                    printf("%d ",a);

                    a++;

     特别注意这个循环一定要在第5步的选择结构中。

7、i++

注意事项:
1、while()后面不要跟分号。2、A处的输出换行位置很重要。3、可以直接从2开始。
参考代码:

#include<stdio.h>

 int main()

 {

     int n=0,i,j,sum,a;

     scanf("%d",&n);

     i=2;

     while(i<=n)

     {

         j=1;

         sum=0;

         while(j<i)

           {

           if(i%j==0)

            sum=sum+j;

            j++;

            }

            if(sum==i)

              {printf("%d its factors are ",sum);

            a=1;

            while(a<sum)

            {

                if(sum%a==0)

                    printf("%d ",a);

                    a++;

            }  printf("\n");//A处。

              }

            i++;


     }


     return 0;

 }


点赞(1)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论