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: 1560ms
Memory: 1100kB
In contest: 1276

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int v[1010];
int p[1010];
void f(int n)
{
	memset(v,0,sizeof(v));
	int m=0;
	int i,l,flag=1;
	for(int i=2;i<=n;i++)
	{
		if(v[i]==0)
		{
			v[i]=i;
			p[++m]=i;
		}
		for(int j=1;j<=m;j++)
		{
		    if(p[j]>v[i] || p[j]>n/i)
				break;
			v[i*p[j]]=p[j];
		}
	}
	printf("%d\n",m);
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n,num=0;
		scanf("%d",&n);
		 f(n);
	}
}