有两个错:
忘记特判和应该是<=sprt(b) 9是特列
所以应该是这样
```c
#include<bits/stdc++.h>
using namespace std;
bool cnt;
int main(){
long long a;
vector<int> n;
cin>>a;
for(int i=0;i<a;i++){
int b;
cin>>b;
if(b<2){
cnt=true;
}
for(int j=2;j<=sqrt(b);j++){
if(b%j==0){
cnt=true;
break;
}
}
if(cnt==false){
n.push_back(b);
}else{
cnt=false;
}
}
for(int i=0;i<n.size();i++){
cout<<n[i]<<" ";
}
return 0;
}
```
by zhang15888910064 @ 2023-12-25 19:08:39
(https://www.luogu.com.cn/record/140977700)
by zhang15888910064 @ 2023-12-25 19:41:10
不建议写 sqrt(b) ,double 和 int 类型转换会丢失精度,建议写
```cpp
j * j <= b
```
跟 sqrt(b) 效果是一样的,但是不容易丢失精度。
by Unqwq_ @ 2024-01-14 16:28:55