package main import ( "bufio" "fmt" "math" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) var rdr = bufio.NewReaderSize(os.Stdin, 1000000) func main() { sc.Split(bufio.ScanWords) n, p := nextInt(), nextFloat() a := make([]float64, n+1) for i := 2; i <= n/2; i++ { for j := i * 2; j <= n; j += i { a[j]++ } } ans := float64(0) for i := 2; i <= n; i++ { if a[i] == 0 { ans++ continue } ans += math.Pow(1-p, a[i]) } fmt.Println(ans) } func nextLine() string { sc.Scan() return sc.Text() } func nextInt() int { i, _ := strconv.Atoi(nextLine()) return i } func nextFloat() float64 { f, _ := strconv.ParseFloat(nextLine(), 64) return f }