题目描述
给你一个数字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版权协议,转载请附上原文出处链接和本声明。