SHA256


私信TA

用户名:uq_41463493448

访问量:575

签 名:

星光不问赶路人,岁月不负有心人

等  级
排  名 379
经  验 3704
参赛次数 1
文章发表 18
年  龄 22
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

定义一个数组存储因子,方便输出

第一个外循环:用于遍历6~输入的范围数

第一个内循环:用于得到因子并存储

第二个内循环:用于求因子之和

第三个内循环:用于判断因子之和是否与外循环里的初值相等,若相等按题目要求输出格式输出


注意事项:
数组元素的个数,由第一个外循环的循环初值的因子数目决定,需要在求因子时自增

后续的循环时,要将下标-1,因为多自增了一次会导致数组越界

满足条件时,因子数的输出之间有空格,且最后没有空格(利用if条件判断体,单独写一个输出语句)


参考代码:

#include <iostream>
using namespace std;
int main()
{
 int N,list[1000],sum,arr;
 cin>>N;
 for(int i=6;i<=N;i++)//第一个外循环
 {
  arr=0;
  sum=0;
  for(int j=1;j<=i/2;j++)//第一个内循环
  {
   if(i%j==0)
   {
    list[arr]=j;
    arr++;
   }
  }
  arr=arr-1;
  for(int k=0;k<=arr;k++)//第二个内循环
  {
   sum=sum+list[k];
  }
  if(sum==i)
  {
   cout<<i<<" "<<"its factors are ";
   for(int z=0;z<=arr;z++)//第三个内循环
   {
    cout<<list[z]<<" ";
   }
   cout<<endl;
  }
 }
 return 0;
}


 

0.0分

0 人评分

  评论区