Start: Jun, 28, 2019 08:42:00
2019杭州师范大学第一届程序设计竞赛新生赛
End: Jun, 28, 2019 11:42:00
Time elapsed:
Time remaining:

Problem_ID: F
Result: Accepted
Time: 44ms
Memory: 4084kB
In contest: 1276

#include<bits/stdc++.h>
using namespace std;
const int maxn  = 300050;
int is[maxn],sum[maxn];
int T,n;
void init(){
	for(int i = 2 ; i <= 1000 ; i++){
		is[i] = 1;
	}
	for(int i = 2 ; i <= 1000 ;i++){
		for(int j = 2 ; j <= sqrt(i)+1 ;j++){
			if(i%j == 0){
				is[i] = 0;
				break;
			}
		}
	}
	is[2] = 1;
	is[1] = sum[1] = 0;
	for(int i = 2 ; i <= 1000 ; i++){
		sum[i] += sum[i-1] + is[i];
	}
}
int main(){
	cin>>T;
	init();
	while(T--){
		scanf("%d",&n);
		printf("%d\n",sum[n]);
	}
	return 0;
}