#include <bits/stdc++.h>
int a, b;
int n;
bool getAns(int x) {
  int d = 1;
  for (int i = 0; i < n; i++) d *= x;
  return a * d == b;
}
int main() {
  while (scanf("%d%d%d", &a, &b, &n) != EOF) {
    if (a == 0 && b == 0) {
      printf("5\n");
      continue;
    }
    if ((a == 0 && b != 0) || b % a != 0) {
      printf("No solution\n");
      continue;
    }
    double temp = pow(abs(b / a), 1.0 / n);
    int l = int(floor(temp));
    int r = l + 1;
    bool yes = false;
    int sign = 1;
    if (b / a < 0 && n % 2 == 1) sign = -1;
    int ans;
    if (getAns(l * sign)) {
      ans = l * sign;
      yes = true;
    }
    if (getAns(r)) {
      ans = r * sign;
      yes = true;
    }
    if (b / a < 0 && n % 2 == 0) yes = false;
    if (yes)
      printf("%d\n", ans);
    else
      printf("No solution\n");
  }
  return 0;
}
