杨钿


私信TA

用户名:MRYANG

访问量:3577

签 名:

等  级
排  名 4080
经  验 1772
参赛次数 0
文章发表 7
年  龄 0
在职情况 学生
学  校 湖南工业大学
专  业

  自我简介:

解题思路:

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;

 }


 

0.0分

0 人评分

  评论区

  • «
  • »