C++,一个数如果等于它的因子之和,这个数就称为完数。编程序找出1000之内的所有完数,并按下面格式输出

并按下面格式输出其因子:6,its factors are 1,2,3
#include<iostream>
using namespace std;
int main()
{
int i,j,k;
for(i=1;i<=1000;i++)
{ k=0;
for(j=1;j<i;j++)
if(i%j==0)
k=k+j;
{
if(k==i)
cout<<i<<endl;
}
}
cout<<"its factors are ";
for(j=1;j<i;j++)
if(i%j==0)
cout<<j<<endl;
return 0;
}
这是我写的程序,可是能求出那三个完数,却不能输出其因子。求解!!!

#include<iostream>

using namespace std;

int main()

{

     int i,j,k;

     for(i=1;i<=1000;i++)

     { 

          k=0;

          for(j=1;j<i;j++)

          { //求因子之和

               if(i%j==0)

                k=k+j;

          }

     

     

          if(k==i)

          {

               cout<<i<<",";//cout<<i<<endl;

               cout<<"its factors are:";

               for(j=1;j<i;j++)

               {//输出因子

                    if(i%j==0)

                     cout<<j<<",";

               }

               cout<<endl;

          }

     

     }

     //下面的语句应该放循环中去。

     //cout<<"its factors are ";

     //for(j=1;j<i;j++)

      //if(i%j==0)

       //cout<<j<<endl;

     

     return 0;

}

结果:

温馨提示:答案为网友推荐,仅供参考
相似回答