编写程序找出1000以内的完数,并按以下格式输出其因子:6,it's factors are 1,2,3
程序运行起来达不到效果是什么原因?
初学者求赐教,万分感谢
#include<iostream>
using namespace std;
int main()
{
int s;
cout<<"1000以内完数有"<<'\n'; //若一个数等于其因数之和,则为完数
for(int i=1;i<=1000;i++)
{
s=0; //s值初始化
for(int j=1;j<i;j++) //求一个数的因数,若是则累加到s
{
if(i%j==0) { //判断此时的j是否为i的因子
s+=j;
}
}
if(s==i){
cout<<s<<",it's factors are"<<'\t';
for(int k=1;k<i;k++)
{
if(i%k==0)
cout<<k<<'\t';
}
cout<<"\n";
}
}
return 0;
}
能运行就说明代码没问题,结果有问题说明算法错了
主要是第三个for语句里的if语句导致没有输出
什么叫做 完数 ?
不知道你这个问题是否已经解决, 如果还没有解决的话: