2015.网研院.Problem A.质数统计

题目描述
给你一个数字n( n <=30),求比n小的质成的个数:
输入描述
第一行是数据组数T(T<=10)。
接下来T行每行有一个整数n。
输出描述
对于每组输入,输出一个数字表示比它小的质数的个数。
样例输入

3
3
5
8

输出:

1
2
4
#include<bits/stdc++.h>
using namespace std;
bool check(int x){
	for(int p=2;p<x;p++){
		if(x%p==0){
			return false;
		}
	}
	return true;
}
int main(){
	int a[31];//存放质数
	memset(a,0,sizeof(a));
	for(int i=2;i<=30;i++){
		if(check(i)==true){
			a[i]=i;
		}
	}
	int T,n;
	cin>>T;
	while(T--){
		int cnt=0;
		cin>>n;
		for(int k=0;k<31;k++){
			if(a[k]<n&&a[k]!=0){
				cnt++;
			}
		}
		cout<<cnt<<endl;
	} 
}

版权声明:本文为chaokudeztt原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。