Reputation: 61
I tried to create a simple program that finds all divisors of a number. I was instructed to store every divisor into a string and use a while loop. I don't know why, but my program does not run. It compiles without errors, but gives no output.
import static java.lang.System.*;
public class Divisors
{
public static String getDivisors( int number )
{
String divisors="";
int n=1;
while(n < number)
{
if (number % n==0)
{
divisors +=" "+ n;
}
}
return number+ " has divisors:"+ divisors;
}
}
Here is my tester class:
import static java.lang.System.*;
public class Lab09f
{
public static void main( String args[] )
{
Divisors d = new Divisors();
out.println(d.getDivisors(10));
out.println(d.getDivisors(45));
out.println(d.getDivisors(14));
out.println(d.getDivisors(1024));
out.println(d.getDivisors(1245));
out.println(d.getDivisors(33));
out.println(d.getDivisors(65535));
}
}
Upvotes: 0
Views: 452
Reputation: 2444
You need to increment n:
public class Divisors
{
public static String getDivisors( int number )
{
String divisors="";
int n=1;
while(n < number)
{
if (number % n==0)
{
divisors +=" "+ n++;
}
}
return number+ " has divisors:"+ divisors;
}
}
Upvotes: 0
Reputation: 124
while(n < number)
{
if (number % n==0)
{
divisors +=" "+ n;
}
n++;
}
return number+ " has divisors:"+ divisors;
}
you were not adding to your n so was looping forever
Upvotes: 4