#include #include long long array[2000]; long long calc(long long n) { if (n < 2000) if (array[n] != -1) return array[n]; if (n < 12) return n; long long x = calc(n/2); long long y = calc(n/3); long long z = calc(n/4); long long sum = 0; if (x > n/2) sum = sum + x; else sum = sum + n/2; if (y > n/3) sum = sum + y; else sum = sum + n/3; if (z > n/4) sum = sum + z; else sum = sum + n/4; return sum; } int main(int argc, char *argv[]) { long long n, val; int i = 0; while (i < 2000) array[i++] = -1; i = 0; while (i < 10) { scanf("%lld", &n); val = calc(n); if (n < 2000) array[n] = val; if (val > n) printf("%lld\n", val); else printf("%lld\n", n); i++; } return 0; }