#include #include #include #include #include #include #include #include #include #include #include using ll = long long; using namespace std; int divisor(int n) { int ret = 0; for (int i = 1; i * i <= n; i++) { if (n % i == 0) { ret++; if (i*i != n) ret++; } } return (ret - 2); } int main(){ int n; double p; cin >> n >> p; vector fac(n+1); vector yprime(n+1); for (int i = 2; i <= n; i++){ for (int j = i; j <= n; j += i){ fac[j]++; } } for (int i = 2; i <= n; i++){ int ex = 0; double tmp = 1.0; yprime[i] = yprime[i-1] + pow(1-p, fac[i]-1); } cout << fixed << setprecision(7) << yprime[n] << endl; }