访问数组[10000]时加扰的数字

问题描述 投票:-2回答:1

我一直在寻找解决方案来质疑10001的素数是多少。我完成了代码:

int main() {
    long long listNumber[10001];
    long position = 1, divider = 0;

    listNumber[0] = 2;

    while(listNumber[10000] == 0) {
        divider = 0;
        listNumber[position] = listNumber[position-1] + 1;

        while(listNumber[divider] <= sqrt(listNumber[position])) {
            if(listNumber[position] % listNumber[divider] == 0) {
                listNumber[position]++;
                divider = 0;
            } else divider++;
        }

        position++;
    }

    cout << listNumber[10000] << endl;

    return 0;
}

但输出总是在变化,我不知道为什么。你能帮我解决一下吗?谢谢。

c++ arrays primes largenumber
1个回答
6
投票

你永远不会初始化数组。这意味着它的内容将是不确定的,甚至读取内容(就像你在循环条件中所做的那样)会导致undefined behavior

您需要初始化数组:

long long listNumber[10001] = {};  // Initialize all elements to zero
© www.soinside.com 2019 - 2024. All rights reserved.