1 #include <iostream> 2 #include <sstream> 3 #include <string> 4 #include <algorithm> 5 #include <vector> 6 #include <cassert> 7 using namespace std; 8 9 #define GI ({int _t; scanf("%d", &_t); _t;}) 10 #define FOR(i, a, b) for (int i=a; i<b; i++) 11 #define REP(i, a) FOR(i, 0, a) 12 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();} 13 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;} 14 #define DBG(x) cout << #x << "::" << x << endl; 15 #define DBGV(_v) { REP(_i, 20) { cout << _v[_i] << "\t";} cout << endl;} 16 17 int dp[4474]; 18 int main() { 19 FOR(i, 1, 4474) dp[i] = (i*(i+1))/2; 20 int num; 21 while (scanf("%d", &num) != -1) { 22 if (num == 1) { 23 printf("TERM 1 IS 1/1\n"); 24 continue; 25 } 26 int pos = -1, diff=0; 27 for (int i=4473; i>=0; i--) { 28 if (dp[i] < num) { 29 pos=i+1; 30 diff = num-dp[i]; 31 break; 32 } 33 } 34 //DBG(pos);DBG(diff); 35 int numer, denom, numer_del, denom_del; 36 if (pos%2==0) { 37 numer = 1; denom = pos; 38 numer_del = 1; denom_del = -1; 39 } 40 else { 41 numer = pos; denom = 1; 42 numer_del = -1; denom_del = 1; 43 } 44 assert(pos != -1); 45 REP(i, diff-1) {numer+=numer_del; denom+=denom_del; } 46 printf("TERM %d IS %d/%d\n", num, numer, denom); 47 } 48 return 0; 49 }