原题:编写程序,输入两个正整数m,n(1<=m<n<=10000),输入m~n之间的所有完全数。要求定义并调用函数perfectNumber(n)来判断n是否是完全数。
P.S完全数:是一些特殊的自然数,它所有的因子(即除了自身以外所有的约数)的和,恰好等于它本身。例如:28是一个完全数,它的约数1、2、4、7、14、28,除去它本身28之外,其余5个数相加,1+2+4+7+14=28.
我的程序如下:
#include <iostream>
using namespace std;
bool perfectNumber(int);
int main()
{
int m,n,i;
cout << "Please input m,n:" ;
cin>>m>>n;
cout<<"Perfect number in["<<m<<","<<n<<"]:";
for(i=m;i<=n;i++){
if(perfectNumber(i)==true ) cout<<i<<' ';
}
return 0;
}
bool perfectNumber(int n)
{
int sum=0,k;
bool flag=false;
for(k=1;k<=n-1;++k){
if(n%k==0) sum+=k;
}
if(sum==n) flag=true;
return (flag);
}
求大腿相助O__O "…
看了一遍程序,感觉可以输出结果,运行一下,发现也是可以的,问题在哪儿?
追问(ーー゛)ORZ。。。。。。。。为什么会这样,我的程序开始是被电脑管家识别为木马,后来我重新复制粘贴程序到一个新的project里,就一直不能正确运行!一Ctrl+f10运行就:
process return 0
。。为何?
这不是你代码的问题。有可能是杀软阻止其运行,你可添加到杀软白名单诸如此类总之让它能够好好编译并运行应该结果都一样。