if statements

i have a little problem with my testIfSublime method.

the bit of code is

for(int i=1; i<=num; i++){

if(num%i == 0) numOfDivisors++;

if(num%i == 0) sumOfDivisors +=i;//two if statements here.

}

is there a way i could increase numOfDivisors and sumOfDivisors without using two if statements? (and therefore only use one).

for example: if(num%i ==0) numOfdivisors++ and sumOfDivisors +=i;

could anyone please show me how to do that?

thanks!

class SublimeNumber{

publicstaticvoid main(String[] args){

for(int num=1; num <1000; num++){

if(testIfSublime(num)) System.out.println(num+" is a Sublime Number");

}

}//close main.

staticboolean testIfSublime(int num){

int numOfDivisors = 0, sumOfDivisors = 0;

for(int i=1; i<=num; i++){

if(num%i == 0) numOfDivisors++;

if(num%i == 0) sumOfDivisors +=i;

}

if( isPerfect(numOfDivisors) && isPerfect(sumOfDivisors) )returntrue;

elsereturnfalse;

}

staticboolean isPerfect(int num){

int sum = 0;

for(int i=1; i<num; i++){

if(num%i == 0) sum += i;

}

if(sum == num)returntrue;

elsereturnfalse;

}

}

>

[3044 byte] By [mark_8206a] at [2007-11-27 3:44:31]
# 1

But them both in a block:

for(int i=1; i<=num; i++) {

if(num%i == 0) {

numOfDivisors++;

sumOfDivisors +=i;

}

}

paulcwa at 2007-7-12 8:48:11 > top of Java-index,Java Essentials,New To Java...
# 2
thanks
mark_8206a at 2007-7-12 8:48:11 > top of Java-index,Java Essentials,New To Java...
# 3
does anyone have any suggestions on how the code i posted could be improved? there's probably a better way of doing it.
mark_8206a at 2007-7-12 8:48:11 > top of Java-index,Java Essentials,New To Java...
# 4

if(sum == num) return true;

else return false;

can be changed to:

return (sum == num);

Likewise,

if( isPerfect(numOfDivisors) && isPerfect(sumOfDivisors) ) return true;

else return false;

can be:

return ( isPerfect(numOfDivisors) && isPerfect(sumOfDivisors) );

Use good formatting, and always use braces, even when there's only one line:

for(int i=1; i<=num; i++) {

if(num%i == 0) {

numOfDivisors++;

}

if(num%i == 0) {

sumOfDivisors +=i;

}

}

hunter9000a at 2007-7-12 8:48:11 > top of Java-index,Java Essentials,New To Java...