#include #include #include #include #include using namespace std; map prime_factors(long long n) { map ret; for (long long i = 2; i * i <= n; i++) { while (n % i == 0) { ret[i]++; n /= i; } } if (n != 1) ret[n] = 1; return ret; } long long count_prime(long long n, long long p) { long long ret = 0; while (n > 0) { ret += n / p; n /= p; } return ret; } int main() { long long n, m; cin >> n >> m; long long mn = 1e18; for (auto pr : prime_factors(m)) { mn = min(mn, count_prime(n, pr.first) / pr.second); } double ans = lgamma(n + 1) * log10(exp(1)) - mn * log10(m); long long d = ans; double p = pow(10, fmod(ans, 1.0) + 1e-8); printf("%.20fe%lld\n", p, d); }