**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受答复。
这个问题似乎不是关于在help center定义的范围内编程。
6天前关闭
这篇文章是编辑并提交审查6天前.
Improve this question
为什么会出现运行时间错误?..请帮助我试图输出第i个素数,但我一直gettng运行时错误。我可以运行代码在离线编译器,但不能在在线编译器
#include<bits/stdc++.h>
using namespace std;
vector<long long>prima;
long long int SieveOfEratosthenes(){
bool prime[1000006];
for (long long int p = 2; p <= 1000000; p++) {
if (prime[p]==false){
prima.push_back(p);
for (long long int i = p * p; i <= 1000000; i += p){
prime[i] = true;
}
}
}
}
int main(){
long t;
cin>>t;
SieveOfEratosthenes();
while(t--){
long long int k;
cin>>k;
cout<<prima[k-1];
}
return 0;
}
1条答案
按热度按时间mbskvtky1#
本宣言
使
prime
中的值未定义,包括将导致未定义行为的陷阱值。即使您修复了这个问题,它也会因为太大而面临堆栈溢出的风险。因此,只需将上面的行替换为:
除了文件顶部的
#include <vector>
之外,其他所有内容都保持不变。