一个数 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;
}