module main; // https://yukicoder.me/submissions/10983 より import std; void main() { // 入力 long N; double P; readln.chomp.formattedRead("%d %f", N, P); // 答えの計算 // A[k] := 1 と k 自身を除く k の約数の個数 auto A = new long[](N + 1); foreach (i; 2 .. N + 1) { for (long j = i * 2; j <= N; j += i) A[j]++; } double e = 0; foreach (i; 2 .. N + 1) { if (A[i] == 0) e += 1; else e += pow(1 - P, A[i]); } // 答えの出力 writefln("%.12f", e); }