我一直在寻找解决方案来质疑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;
}
但输出总是在变化,我不知道为什么。你能帮我解决一下吗?谢谢。
你永远不会初始化数组。这意味着它的内容将是不确定的,甚至读取内容(就像你在循环条件中所做的那样)会导致undefined behavior。
您需要初始化数组:
long long listNumber[10001] = {}; // Initialize all elements to zero