ユーザーの入力よりも低い完全数を見つけるコードを作成しようとしています。正しい出力のサンプル:
正の整数を入力してください: 100
6 は完全数
です 28 は完全数です
100 以下の完全数はもうありません
しかし、コードを実行するとエラーが発生しますFloating point exception
理由がわかりません。私は何を間違っていますか?
これが私のコードです:
#include <iostream>
using namespace std;
bool isAFactor(int, int);
int main(){
int x, y;
int countOut, countIn;
int userIn;
int perfect = 0;
cout << "Enter a positive integer: ";
cin >> userIn;
for(countOut = 0; countOut < userIn; countOut++){
for(countIn = 1; countIn <= countOut; countIn++){
if(isAFactor(countOut, countIn) == true){
countOut = countOut + perfect;
}
}
if(perfect == countOut){
cout << perfect << " is a perfect number" << endl;
}
perfect++;
}
cout << "There are no more perfect numbers less than or equal to " << userIn << endl;
return 0;
}
bool isAFactor(int inner, int outer){
if(outer % inner == 0){
return true;
}
else{
return false;
}
}