By arunraj
The following code is used to find factors of a given number in an efficient way.
public static void findFactors(int b)
{
System.out.println("The factors for "+b+" are ");
int prev = 0;
for(int i=1;i<=b/2;i++)
{
if(b%i==0)
{
if(prev==i )
return;
else if(i==(b/i)){
System.out.println(i);
return;
}
System.out.println(i+","+(b/i));
prev = b/i;
}
}
{
System.out.println("The factors for "+b+" are ");
int prev = 0;
for(int i=1;i<=b/2;i++)
{
if(b%i==0)
{
if(prev==i )
return;
else if(i==(b/i)){
System.out.println(i);
return;
}
System.out.println(i+","+(b/i));
prev = b/i;
}
}
Output:
The factors for 100 are
1,100
2,50
4,25
5,20
10
1,100
2,50
4,25
5,20
10
The factors for 35 are
1,35
5,7
The factors for 36 are
1,36
2,18
3,12
4,9
6
Note that perfect squares will have odd number of factors.
Interview Questions: