#include <stdio.h>
#define MAX 20000 /*探索する範囲::2からMAXまでを探索する*/

main()
{
  int sum[MAX+1];/*素因数分解した数の和を記録する配列::sum[i]にはiの素因数の和を格納*/
  int i,j,n;
  /*素因数の和をsum[i]を求める*/
  for(i = 2;i <= MAX;i++){
    /*iの最小の素因数jを探す．sqrt(i)まで調べれば十分*/
    j = 2;
    while(j*j <= i){
      if(i % j == 0){ /*iがjで割り切れる場合はsum[i] = j + sum[i/j] となり終了*/
        sum[i] = j + sum[i/j];
        break;
      }
      else j++;
    }
    if(j *j > i ) sum[i] = i; /*割り切れる数が見つからなかった場合*/
  }
  /*ロースアーロンペアを探す*/
  n = 0; /*ロースアーロンペアの個数*/
  for(i = 2;i <  MAX;i++){
    if(sum[i] == sum[i+1]){
      n++;
      /*個数，ロースアーロンペアの順番で出力*/
      printf("%3d  (%d,%d)\n",n,i,i+1);
    }
  }
}
