Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何解决欧拉问题12?_C++ - Fatal编程技术网

C++ 如何解决欧拉问题12?

C++ 如何解决欧拉问题12?,c++,C++,可能重复: 我一直在研究Euler问题,但问题12出了问题。我读了一些关于大数的数学解,但仍然没有得到正确的答案。这是我的代码: #include <iostream> using namespace std; int divisorCount(const unsigned long long x) { int divizers = 0; unsigned long long i = 1; while(i <= x/i) {

可能重复:

我一直在研究Euler问题,但问题12出了问题。我读了一些关于大数的数学解,但仍然没有得到正确的答案。这是我的代码:

#include <iostream>
using namespace std;

int divisorCount(const unsigned long long x)
{
    int divizers = 0;
    unsigned long long i = 1;
    while(i <= x/i)
    {
        if(x % i == 0)
        {
            divizers++;
        }
        i++;
    }
    return divizers;
}

int main()
{
    bool test;
    unsigned long long total = 0, spread = 1;
    int divisors = 1;

    while(divisors < 501)
    {
        total+=spread;
        divisors = divisorCount(total);
        spread++;
        if(divisors > 501)
            cout << total << " " << spread << " " << divisors << endl;
    }


    cout << total << " is divisible by 500+ numbers" << endl;
    system("pause");
    return 0;
}
#包括
使用名称空间std;
整除计数(常数无符号长x)
{
整数除数=0;
无符号长i=1;
而(i 501)

cout在sqrt(x)之上有x的除数,所以修正如下:

while(i <= x/i)

while(我想想你的
if
语句:

if(x % i == 0)
{
    divizers++;
}

既然
i
x
的一个因子,那么你能马上写下
x
的其他因子是什么呢?如果3是24的因子,你知道24的其他因子是什么吗?这个提示中有一个隐藏的陷阱,你就知道了。

任务是什么?没有链接,没有文本。:/@yi_H-是众所周知的。我知道。这是sti我们建议将外部资源联系起来。
if(x % i == 0)
{
    divizers++;
}