/* Tue Mar 16 15:53:17 JST 2004 */ #include #include int gcd(int x, int y) { if (y != 0) { return gcd(y, x%y); } return x; } int main() { int p, n; int under, over; int u, v, x, y; double p2; while (1) { scanf("%d%d", &p, &n); if (p == 0 && n == 0) { break; } p2 = sqrt(p); x = 10001; y = 1; u = 0; v = 10001; for (under = 1; under <= n; under++) { over = (int)floor(p2 * under); if (over > n) { continue; } if ((double)u / (double)v < (double)over / (double)under && gcd(over, under) == 1) { u = over; v = under; } if ((double)x / (double)y > (double)(over + 1) / (double)under && over + 1 <= n && gcd(over+1, under) == 1) { x = over + 1; y = under; } } printf("%d/%d %d/%d\n", x, y, u, v); } return 0; } /* Tue Mar 16 16:22:08 JST 2004 */