#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)) 完美 */