#include #include void run(void){ int n; double p; scanf("%d%lf",&n,&p); double *primeProb=(double *)malloc(sizeof(double)*(n+1)); primeProb[0]=primeProb[1]=0; int i; for(i=2;i<=n;i++){ primeProb[i]=1.0; } for(i=2;i<=n;i++){ int j; for(j=2*i;j<=n;j+=i){ primeProb[j]*=(1-p); } } double ans=0.0; for(i=2;i<=n;i++){ ans+=primeProb[i]; } printf("%lf\n",ans); free(primeProb); return; } int main(void){ run(); return 0; }