#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
bool is_prim(int n){
if(n<2) return false;
for(int i=2;i<=n/i;i++)
if(n%i==0) return false;
return true;
}
int main()
{
int n,m;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&m);
if(is_prim(m)) printf("Yes\n");
else printf("No\n");
}
return 0;
}
/*
i<n O(n) 超时
i*i<=n O(sqrt(n)) 当n趋近于int时i*i有的可能会因溢出变成负数
i<=sqrt(n) O(sqrt(n)) 每次循环会进行sqrt()的运算 用时过长
i<=n/i O(sqrt(n)) 完美
*/
AcWing 866. 试除法判定质数
于 2022-03-31 10:23:23 首次发布