#include <stdio.h>
#include <math.h>
// 算法竞赛的目标是编程对任意输入均得到正确的结果。
// 请先独立完成,如果有困难可以翻阅本书代码仓库中的答案,但一定要再次独立完成。
// “抓住主要矛盾”——始终把学习、实验的焦点集中在最有趣的部分。如果直观地解决方案行得通,就不必追究其背后的原理。
/**
【题目】子序列的和(subsequence)
输入两个正整数n<m<10^6 ,输出 1/n^2 + 1/(n+1)^2 + ... + 1/m^2 ,保留5位小数。输入包含多组数据,
结束标记为n=m=0。
样例输入:
2 4
65536 655360
0 0
样例输出:
Case 1: 0.42361
Case 2: 0.00001
*/
/**
【分析】循环处理
*/
int main()
{
double sum;
int n,m;
int i;
while (scanf("%d%d",&n,&m) != EOF) {
if (n == 0 && m == 0) {
break;
}
if (n >= m || m > pow(10,6) || n < 0) {
printf("Input Error");
}
sum = 0; // 重置sum的值
for (i=n;i<=m;i++) {
sum += 1.0 / pow(i,2);
}
printf("%.5lf\n",sum);
}
return 0;
}