
#include <stdio.h>

/* 数の上限 */
#define MAX_NUM 10000000

/* 関数のプロトタイプ宣言 */
int sum_of_factor(int);
int amicable(int);

int main(){
  int i,j;
  for(i=1; i<MAX_NUM; i++){
    /* iが友愛数かどうかを確認 */
    /* 重複を避けるため，対の値がiより大きい場合のみ表示 */
    if( (j=amicable(i))  && i<j){
      printf("(%d,%d)\n", i, j);
    }
  }
  return 0;
}

/* nが友愛数かどうかを調べる関数 */
/* 友愛数なら対となる値を，そうでないなら0を返す */
int amicable(int n){
  int m = sum_of_factor(n)-n;
  if( (sum_of_factor(m)-m) == n) return m;
  else return 0;
}

/* nの約数の和を返す関数 */
int sum_of_factor(int n){
  int i, ret=0;
  for(i=1; i*i<n; i++){
    if(n%i == 0){
      /* iが約数なら，n/iも約数 */
      /* ただしi=n/iとなる場合には注意 */
      ret += i + n/i;
    }
  }
  /* i=n/i となる場合は別にカウントする */
  if(i*i==n) ret += i;

  return ret;
}

