text: // =====================================================================================
  //
  //       Filename:  10976.cpp
  //
  //    Description:  http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1917
  //
  //        Version:  1.0
  //        Created:  Sunday 28 September 2014 03:45:36  IST
  //       Revision:  none
  //       Compiler:  g++
  //
  //         Author:  Brajesh Kumar (), kbrajesh176@gmail.com
  //   Organization:  
  //
  // =====================================================================================
  
  
  //Data Structure includes
  #include<vector>
  #include<stack>
  #include<set>
  #include<bitset>
  #include<map>
  #include<queue>
  #include<deque>
  #include<string>
  
  
  //Other Includes
  #include<iostream>
  #include<fstream>
  #include<algorithm>
  #include<cstring>
  #include<cassert>
  #include<cstdlib>
  #include<cstdio>
  #include<cmath>
  
  using namespace std;
  
  #define FOR(i,a,b) for(int i=a;i<b;i++)
  #define REP(i,n) FOR(i,0,n)
  #define pb push_back
  #define mp make_pair
  #define s(n) scanf("%d",&n)
  #define sl(n) scanf("%lld",&n)
  #define sf(n) scanf("%lf",&n)
  #define ss(n) scanf("%s",n)
  #define fill(a,v) memset(a, v, sizeof a)
  #define sz(a) int((a).size())
  #define INF (int)1e9
  #define EPS 1e-9
  #define bitcount __builtin_popcount
  #define all(c) (c).begin(), (c).end()
  #define maX(a,b) (a>b?a:b)
  #define miN(a,b) (a<b?a:b)
  #define DREP(a) sort(all(a)); a.erase(unique(all(a)),a.end())
  #define INDEX(arr,ind) lower_bound(all(arr),ind)-arr.begin()
  #define tr(c,i) for(typeof((c).begin()) i = (c).begin(); i != (c).end(); i++)
  #define present(c,x) ((c).find(x) != (c).end())
  #define cpresent(c,x) (find(all(c),x) != (c).end())
  
  typedef vector<int> VI;
  typedef vector<vector<int> > VVI;
  typedef long long LL;
  typedef vector<long long > VLL;
  typedef pair<int, int > PII;
  typedef vector< PII > VPII;
  /*Main Code*/
  #define EXIT_SUCCESS 0
  // ===  FUNCTION  ======================================================================
  //         Name:  main
  //  Description:  main function
  // =====================================================================================
  VPII ret;
  int k;
  int check(int y){
      int x =  (k * y) % (y - k);
      // printf("x = %d  y = %d\n", x, y);
      return x == 0 ? (k * y) / (y - k) : -1;
  }
  
  int
  main ( int argc, char *argv[] ){
      
      while(s(k) != EOF){
          ret.clear();
          FOR(y, k + 1, 2 * k + 1){
              int x = check(y);
              if(x != -1){
                  ret.pb(mp(x, y));
              }
          }
          int tt = ret.size();
          printf("%d\n", tt);
          REP(i, tt){
              PII p = ret[i];
              printf("1/%d = 1/%d + 1/%d\n", k, p.first, p.second);
          }
      }
  	return EXIT_SUCCESS;
  }		// ----------  end of function main  ---------- 
  
  