【发布时间】:2011-05-24 08:46:58
【问题描述】:
问题是: “编写一个函数来判断一个数是质数还是完美数。”
到目前为止,我首先完成了完美的部分,这就是我所拥有的:
#include <iostream>
using namespace std;
bool perfectNumber(int);
int main()
{
int number;
cout<<"Please enter number:\n";
cin>>number;
bool perfectNumber(number);
return 0;
}
bool perfectNumber(int number)
{
int i;
int sum=0;
for(i=1;i<=number/2;i++)
{
if(number%i==0)
{
sum+=i;
}
}
if (sum==number)
return i;
else
return 0;
}
但是,此代码似乎存在错误。 我看过这本书,但没有谈到这个话题。 我想获得有关如何修复此代码的建议。
谢谢!
【问题讨论】:
-
% 表示 number/i 的余数为 4%2=0
-
听起来像是欧拉计划之一。但也许只有我;)
-
您遇到了什么错误。查看代码示例,您将 perfectNumber(int) 定义为 bool,但返回的是 int。
-
@Ash Burlaczenko:这没有什么问题。问题在第 10 行(参见 James McNellis 的回答)。
标签: c++ numbers primes modulus perfect-numbers