When i compile my program i get the error "floating point exception".
I do not know why this is occurring my code. I am hoping that this is
the reason why nothing is being put into my outfile. if it is
possible could you look at my code and give me a suggestion.

Steven Layman

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int sumOfPostiveDivisor(int number)
{
   int sumofDivisor = 0;
   for (int posDivisor = 0; posDivisor <= number / 2; posDivisor ++) {
	if (number % posDivisor == 0)
	  sumofDivisor = sumofDivisor + posDivisor;
   }
return sumofDivisor;
}

bool isPerfect(int number)
{
   return sumOfPostiveDivisor(number) == number;
}

int main()
{
   const int LIMIT = 10000;

   ofstream outfile;
	
   outfile.open("perfect.out");
	
   if (outfile.fail()) {
     cerr << "Can't open perfect.out for output \n";
	return 1;
   }

   for (int number = 2; number <= LIMIT; number ++) {
     if (isPerfect(number))
	  outfile << number << " is perfect.\n";
   }

   outfile.close();
   return 0;
}

Recommended Answers

All 2 Replies

for (int posDivisor = 0; posDivisor <= number / 2; posDivisor ++) {
    if (number % posDivisor == 0)

Modulo zero is the same as division by zero.
Both are wrong.

wow i totally missed that thank you

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.