#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <fstream>
#include <queue>
#define rep(i, l, r) for(int i = l; i <= r; i++)
#define down(i, l, r) for(int i = l; i >= r; i--)
#define MS 34567
#define MAX 1037471823
using namespace std;
double x, y;
int n;
double Search(double x, double y, int n)
{
double a, b;
if (x > y) a = x, x = y, y = a;
if (n == 1) return y / x;
b = MAX;
a = y / n;
rep(i, 1, n-1)
b = min(b, max(Search(x, a*i, i), Search(x, y-a*i, n-i)));
a = x / n;
rep(i, 1, n-1)
b = min(b, max(Search(y, a*i, i), Search(y, x-a*i, n-i)));
return b;
}
int main()
{
scanf("%lf%lf%d", &x, &y, &n);
printf("%.6lf\n", Search(x, y, n));
return 0;
}
I2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGZzdHJlYW0+CiNpbmNsdWRlIDxxdWV1ZT4KCiNkZWZpbmUgcmVwKGksIGwsIHIpIGZvcihpbnQgaSA9IGw7IGkgPD0gcjsgaSsrKQojZGVmaW5lIGRvd24oaSwgbCwgcikgZm9yKGludCBpID0gbDsgaSA+PSByOyBpLS0pCiNkZWZpbmUgTVMgMzQ1NjcKI2RlZmluZSBNQVggMTAzNzQ3MTgyMwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmRvdWJsZSB4LCB5OwppbnQgbjsKCmRvdWJsZSBTZWFyY2goZG91YmxlIHgsIGRvdWJsZSB5LCBpbnQgbikKewoJZG91YmxlIGEsIGI7IAoJCglpZiAoeCA+IHkpIGEgPSB4LCB4ID0geSwgeSA9IGE7CglpZiAobiA9PSAxKSByZXR1cm4geSAvIHg7CgliID0gTUFYOyAKCWEgPSB5IC8gbjsKCXJlcChpLCAxLCBuLTEpIAoJCWIgPSBtaW4oYiwgbWF4KFNlYXJjaCh4LCBhKmksIGkpLCBTZWFyY2goeCwgeS1hKmksIG4taSkpKTsKCWEgPSB4IC8gbjsKCXJlcChpLCAxLCBuLTEpIAoJCWIgPSBtaW4oYiwgbWF4KFNlYXJjaCh5LCBhKmksIGkpLCBTZWFyY2goeSwgeC1hKmksIG4taSkpKTsKCXJldHVybiBiOwp9CgppbnQgbWFpbigpCnsKCXNjYW5mKCIlbGYlbGYlZCIsICZ4LCAmeSwgJm4pOwoJcHJpbnRmKCIlLjZsZlxuIiwgU2VhcmNoKHgsIHksIG4pKTsKCXJldHVybiAwOwp9