这个不通过我也没办法了,明明已经都是最优解,这个判定是在?
#include<iostream>
#include<vector>
using namespace std;
vector<bool>arr(1000001,true);
void calculation();
int sum(int a);
void calculation(){
arr[0]=arr[1]=false;
for(int i=2;i*i<=1000000;i++){
if (!arr[i]) continue;
for(int j=i*i;j<=1000000;j+=i)
arr[j]=false;
}
}
int sum(int a){
int sum=0;
for(int i=1;i<=a;i++)
if(arr[i]) sum++;
return sum;
}
int main(){
int n;
cin>>n;
calculation();
while(n--){
int num;
cin>>num;
cout<<sum(num)<<endl;
}
return 0;
}