原理就是 if一个数有因子 那么 d|n—>(n/d)|n 那么我们从小的因子开始枚举 d<=n/d –>d^2<=n 程序中优化为i<=n/i;
(d是小因子)
C++
#include<iostream>
#include<algorithm>
using namespace std;
int n;
bool prime(int x)
{
if(x<2) return false;
else
{
for(int i=2;i<=n/i;i++)
{
if(n%i==0)
return false;
}
}
return true;
}
int main(void)
{
int k;
cin>>k;
while(k--)
{
cin>>n;
if(prime(n)) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}