uva 11762
来源:互联网 发布:华悦网络下载 编辑:程序博客网 时间:2024/04/28 17:47
<pre name="code" class="cpp">#include <bits/stdc++.h>using namespace std;#define maxn 1000000+10bool isprime[maxn];int mark[maxn];double dp[maxn];int T, n;void make_prime(int num){ int tmp=sqrt(num+0.5); memset(isprime,true,sizeof(isprime)); for(int i=2; i<=tmp; i++) if(isprime[i]) for(int j=i*i; j<=num; j+=i) isprime[j]=false; isprime[0] = false; isprime[1] = false; int cnt = 0; for(int i=2; i<=num; i++) if(isprime[i]) mark[i] = ++cnt; else mark[i] = cnt;}double solve(int m){ int k = 0; if(m == 1) return 0; if(dp[m]) return dp[m]; for(int i=2; i<=m; i++) if(isprime[i] && m%i == 0) { dp[m] += solve(m/i)/mark[m]; k++; } dp[m] += mark[m]/(double)k; return dp[m];}int main(){ freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); cin>>T; make_prime(maxn); while(T--) { memset(dp, 0, sizeof(dp)); cin>>n; double ans = solve(n); printf("%.10lf\n", ans); } return 0;}
0 0
- uva 11762
- uva 11762 dp
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- nyoj 506 洗澡
- 数控车床机械结构_02
- Sicily 11158. Numbers and Words
- 527C. Glass Carving【平衡二叉树】
- 10个诀窍助你成为牛逼的远程开发人员
- uva 11762
- Sicily 1501. Minimal Backgammon
- nyoj312 20岁生日
- Linux内核开发的特点
- 判断输入字符是否为数字
- uva 10285 Longest Run on a Snowboard (记忆化搜索)
- 开博客地一天
- Java算法分析2—————几种排序&汉诺塔算法
- 牛逼程序员要知道的16条规则