题目

Rimi learned a new thing about integers, which is - any positive integer greater than 1 can be divided by its divisors. So, he is now playing with this property. He selects a number N. And he calls this D.

In each turn he randomly chooses a divisor of D (1 to D). Then he divides D by the number to obtain new D. He repeats this procedure until D becomes 1. What is the expected number of moves required for N to become 1.

Input

Input starts with an integer T (≤ 10000), denoting the number of test cases.

Each case begins with an integer N (1 ≤ N ≤ 105).

Output

For each case of input you have to print the case number and the expected value. Errors less than 10-6 will be ignored.

Sample Input

3
1
2
50

Sample Output

Case 1: 0
Case 2: 2.00
Case 3: 3.0333333333

大意

给出一个数,每次随机处一个它的因子,求他变成1的期望次数。

题解

令 f[I] 表示i在f[i]此后变成1。

\[f[i] = \sum_{j|i} (f[j]+1) / k, (k = \sum_j [j|i])
\]

代码

#include<bits/stdc++.h>
#define repeat(a,b,c,g) for (int a=b,abck=(g>=0?1:-1);abck*(a)<=abck*(c);a+=g)
using namespace std;
double f[110000];
int main()
{
f[1] = 0;
for (int i=2;i<=100000;i++)
{
double tot = 0;
int tp = -1;
for (int j=1;j<=sqrt(i);j++)
{
if (i % j == 0)
{
tp ++, tot += f[j] + 1;
if (j * j != i)
tp ++, tot += f[i/j] + 1;
}
}
f[i] = tot / tp;
}
int n;
cin >> n;
for (int i=1;i<=n;i++)
{
int tmp;
cin >> tmp;
printf("Case %d: %.7f\n",i,f[tmp]);
}
}

最新文章

  1. Android权限管理之Permission权限机制及使用
  2. 不注册Tomcat服务,运行Tomcat不弹出JAVA控制台窗口
  3. 使用抓包工具SpyNet对你的网络进行监控
  4. java反射机制一个例子
  5. AppCan做的图片上传代码
  6. Android中将Bitmap对象以PNG格式保存在内部存储中
  7. js replace如何实现全部替换
  8. C#.net时间戳转换
  9. [LeetCode] 55. Jump Game 解题思路
  10. E - The King
  11. D3D 扎带 小样本
  12. 自学Unity3D 之 贪吃蛇 添加摄像机跟随
  13. My Calendar III
  14. 运用jieba库分词
  15. word20161227客厅家电
  16. linux安装mysql8.0及开启远程访问
  17. 如何修复“网络路径”,错误代码0x80070035
  18. 动态sql and在前 逗号在后
  19. 关于VXLAN的认识-----ovs+vxlan多链路负载分担的实现方法
  20. 【Android】TypedArray和obtainStyledAttributes使用

热门文章

  1. 【Linux开发】jpeglib使用指南
  2. 【Qt开发】将内存图像数据封装成QImage V2
  3. selectnodes和selectSingleNode
  4. SQL如何通过当前日期获取上周一日期【转】
  5. java基础笔记)(5)
  6. linux下occi操作oracle数据库,中文乱码的问题
  7. Hyper-V Centos7 虚拟机固定IP
  8. Redis的配置与数据类型
  9. python 序列解包(解压缩)
  10. iOS之Run Loop详解