Sunday, January 20, 2013

Problem 21: Amicable numbers


Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).
If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers.
For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.
Evaluate the sum of all the amicable numbers under 10000.

Solution:
it's a very easy problem, Here's the java code:
public class Prob21 {

 

 
 public static void main(String[] args) 
 {
 int sum = 0;
  
 
 for(int i = 2; i < 10000 ; i++)
  {
  
   if(amicable_checker(i))
   { 
    sum+=i;
   }
  }
  
System.out.println(sum);

 }

 
 public static int propDivSumFinder(int n)
 { int sum =0;
 
 for(int i =1; i< n/1 ; i++)
 {
  if(n%i == 0)
   sum += i;
 }
  
  return sum; 
 }
 
 
public static boolean amicable_checker(int a)
 {
  int b;
  b = propDivSumFinder(a);
  if(a!=b)
  {
   if(propDivSumFinder(b) == a)
    {
    
    return true;
    }
    else 
    return false;
  }
  return false;
 }
 
 
 
}

No comments:

Post a Comment