3502 - 花式作死!
时间限制 : 1 秒
内存限制 : 128 MB
给出一个正整数 n (1 <= n <= 100000000) 试求出点集 {(x, y)|[x] * [y] = n} 在 oxy 平面上的覆盖的面积.
题目输入
多组数据, 每组数据一行, 包含一个正整数 n.
题目输出
对于每组输入数据, 输出一行, 表示所求面积, 如果所求面积非整数, 保留三位小数。
输入/输出样例
输入格式
1
输出格式
2.000
C语言解答
#include<stdio.h> #include<math.h> int main() { double s; int i,n; while(scanf("%d",&n)!=EOF) { s=0; for(i=1;i<=sqrt(n+0.5);i++) { if(n%i==0&&i!=n/i) s+=2; else if(n%i==0&&i==n/i) s++; } printf("%.3lf\n",s*2); } }
C++解答
#include <stdio.h> int main () { int n; for (; scanf ("%d", &n) == 1; ) { int res = 0; for (int i = 1; i <= n / i; i++) if (n % i == 0) res += (i * i == n ? 1 : 2); printf ("%d.000\n", res *= 2); } return 0; }