不推荐用sqrt的写法,或者i * i <= n 的写法
由于一个数的因子都是成对出现的,假设一个因子是d,那么另一个就是n / d,因此只需要遍历到这里就行了
#include <iostream>
using namespace std;
bool is_prime(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;
cin >> n;
int a;
while(n--)
{
cin >> a;
if(is_prime(a)) cout << "Yes" << endl;
else
{
cout << "No" << endl;
}
}
return 0;
}