3502 - 花式作死!

通过次数

0

提交次数

0

时间限制 : 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;
}