2-10000完全数!

来源:百度知道 编辑:UC知道 时间:2024/07/08 13:55:06
2-10000完全数
#include<iostream>
using namespace std;
int main()
{
int m,n,sum=0;
cout<<"2-10000之内的所有完全数有:"<<endl;
for(m=2;m<=10000;m++)
{
for(n=2;n<=m/2;n++)
{
if(m%n==0)
sum=sum+n;
}
if(m==sum)
cout<<m<<" ";
}
return 0;
}
纠一下错!谢!
为什么结果只显示了七?

bool fun(int n)
{
int sum=0;
for(int i=1;i<n;i++)
{
if(n%i==0)sum+=i;
}
if(sum==n)//是完数则返回true
return true;
else return false;//否则返回false
}
void main()
{
int count=0;
for(int i=2;i<=1000;i++)
{
if(fun(i))
{
cout<<i<<" ";
count++;
if(count%5==0)//五个换一行输出
cout<<endl;
}
}
}
给你参考一下,你的那个程序我看看再说!

经过的我研究,我知道你错哪了!
你的SUM定义的不对,是一个全局静态变量,应该把它放在第二个循环内才对!
void main()
{
int m,n,count=0;
cout<<"2-10000之内的所有完全数有:"<<endl;
for(m=2;m<=10000;m++)
{ int sum=0;
for(n=1;n<m;n++)
{
if(m%n==0)
sum=sum+n;
}
if(m==sum)
{cout<<m<<endl;
count++;
}
}
cout<<"总共有完全数"<<count<<"个"<<endl;