私がやろうとしているのは、完全数を探すことです。完全数とは、6 = 1 + 2 + 3など、すべての除数の合計である数です。
基本的に私がここで行うことは、2つの数を求め、それら2つの数の間の完全数を見つけることです。除算と2つのネストされたループをテストする関数があります。
私の問題は、結果が得られないことです。私はそれを修正しました、そして何も悪いことを見つけることができないようです。コンパイラはエラーを発生させません。
何が間違っている可能性がありますか?
#include <iostream>
using namespace std;
bool isAFactor(int, int);
int main()
{
int startval;
int endval;
int outer_loop;
int inner_loop;
int perfect_number = 0;
cout << "Enter Starting Number: ";
cin >> startval;
cout << "Enter Ending Number: ";
cin >> endval;
for(outer_loop = startval; outer_loop <= endval; outer_loop++)
{
for(inner_loop = 1; inner_loop <= outer_loop; inner_loop++)
{
if (isAFactor(outer_loop, inner_loop) == true)
{
inner_loop += perfect_number;
}
}
if (perfect_number == outer_loop)
{
cout << perfect_number << " is a perfect number." << endl;
}
else
{
cout << "There is no perfect number." << endl;
}
}
system("PAUSE");
return 0;
}
bool isAFactor(int outer, int inner)
{
if (outer % inner == 0)
{
return true;
}
else
{
return false;
}