I need my program to be able to find the first 4 perfect numbers. It is a perfect number if all of its divisors add up to the number. So 6 is the first one (1+2+3=6)
My program compiles, but when it runs it doesnt do anything. It must be getting stuck in one of my while loops or something. I cannot spot where the code is wrong but can anyone else see it?
import java.io.*;
public class Proj05b
{
public static void main (String[] args) throws IOException
{
int testnumber = 2; //the testing number
int testdivisor = 1; //the test divisor
int divisors; //the amount of divisors
int divisor1 = 0; //the value of 1st divisor
int divisor2 = 0; //2nd divisor
int divisor3 = 0; //3rd divisor
int divisor4 = 0; //4th divisor
int hits2 = 0;
int hits = 0; //# Of hits the last if statement has,
//once it reaches 4 it ends program
while (hits < 4)
{
testnumber++; //Testing the next number
testdivisor = 1; //Resetting the testdivisor
hits2 = 0;
while (hits2 == 0) //Making sure testdivisor isn't
{ //over half the number, needless
while (testdivisor <= testnumber)
{
divisors = (testnumber % testdivisor);
if (divisors==0)
{
if (divisor1==0)
{
divisor1=testdivisor;
}
else if (divisor2==0)
{
divisor2=testdivisor;
}
else if (divisor3==0)
{
divisor3=testdivisor;
}
else if (divisor4==0)
{
divisor4=testdivisor;
}
}
if ((divisor1+divisor2+divisor3+divisor4)==testnumber)
{
System.out.println(testnumber);
hits2++;
hits++;
}
else if ((divisor1+divisor2+divisor3+divisor4)!=testnumber)
{
testdivisor++;
}
}
}
}
}
}