题目

源地址:

http://poj.org/problem?id=1183

理解

题目不难,但是被数据类型坑了= =。 int不够,long long超时,使用unsigned int过了= =,感谢大神,坑了这么久。。

代码

#include <iostream>
#include <cstdio>
using namespace std;

int main(int argc, char const *argv[])
{
    unsigned int m, n, a, sum;
    while (scanf("%d", &a) != EOF)
    {
        for (m = a; ; m++)
            if ((a * a + 1) % m == 0)
                break;
        n = (a * a + 1) / m;
        sum = 2 * a + m + n;
        printf("%d\n", sum);
    }
    return 0;
}

更新日志

  • 2014年08月12日 已AC。