Number of prime number(打印素數表)

Description


素數是指在大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數,例如2, 3, 5, 7, 11……


求n以內的素數個數,是指小於等於n的素數數量


例如n=4,因爲小於4的素數是2、3,所以數量是2


Input


第一行輸入一個t,表示下面將有t組測試數據。接下來的t行的每行包含參數n(0<=n<=1000000)


Output


對於每一組測試數據,輸出的一行是n以內的素數個數。


Sample Input

3
18
9
11


Sample Output

7
4
5


所有的工作都在用戶開始輸入前做好

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	bool isprime[1000001];
	for(int i=2;i<1000001;i++)
		isprime[i]=true;
	for(int i=2;i<=1000;i++)
	{
		if(isprime[i])
		{
			for(int j=i*i;j<1000001;j+=i)
				isprime[j]=false;
		}
	}
	int num[1000001];
	num[1]=0;
	for(int i=2;i<1000001;i++)
	{
		if(isprime[i]==1)
		num[i]=num[i-1]+1;
		else
		num[i]=num[i-1];
	} 
	while(t--)
	{
		int n;
		cin>>n;
		cout<<num[n]<<endl;
	}
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章