一个数 x 分解成两个数的乘积,则这两个数中,一定有一个数大于根号 x,一个数小于根号x。

所以,可以用 x 除以 2 ~ 根号x 中的每个数,如果出现了余数为 0,则这个数不是质数,如果没有出现余数为 0,则这个数是质数。

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
bool is_prime(int x) {
    if(x < 2) return false;
    for(int i = 2;i<=sqrt(x);i++){
        if(x%i == 0) return false;
    }
    return true;
}
int main(void) {
    int n;
    cin >> n;
    while(n--){
        int x;
        cin >> x;
        if(is_prime(x)) cout << "Yes" << endl;
        else cout << "No" << endl;
    }
    return 0;
}