一个求完全数的程序,真没看出来错哪了,可是运行不对
一个求完全数的程序,真没看出来哪里错了,可是运行不对
运行之后,输出范围内完全数是那里。。 例如n=6,结果就输出了123456.。。 不应该啊。。 实在没看出来那里错了。。求解,谢谢!!
------解决方案--------------------
------解决方案--------------------
#include<iostream>
using namespace std;
bool perfect(int num)
{
int sum=0;
for(int i=1;i<=num/2;i++)//先前错误:for(int i=0;)会引起程序错误。
{
if(num%i==0)
{
sum+=i;
}
}
if(sum==num)
return true;
else
return false;
}
void main()
{
int n;
cin>>n;
if(perfect(n))
cout<<"是完全数"<<endl;
else
cout<<"不是完全数"<<endl;
cout<<"范围内完全数是:";
for(int i=1;i<=n;i++)
{
if(perfect(i));
{
cout<<i<<" ";
}
}
}
运行之后,输出范围内完全数是那里。。 例如n=6,结果就输出了123456.。。 不应该啊。。 实在没看出来那里错了。。求解,谢谢!!
------解决方案--------------------
if(perfect(i));//这里多了个分号
------解决方案--------------------
cout<<"范围内完全数是:";
for(int i=1;i<=n;i++)
{
if(perfect(i)); //这里你多了个;
{
cout<<i<<" ";
}
}