循环里面的 i 一定是一个质数:假如 i 是一个合数,那么它一定可以分解成多个质因子相乘的形式,这多个质因子同时也是 a 的质因子且比 i 要小,而比 i 小的数在之前的循环过程中一定是被条件除完了的,所以 i 不可能是合数,只可能是质数
#include<iostream>
using namespace std;
void is_prime(int a)
{
bool flag=1;
for(int i=2;i<=a/i;++i)
if(a%i==0)
flag=0;
if(flag&&a>1)puts("Yes");
else puts("No");
}
int main()
{
int n;
cin>>n;
while(n--)
{
int a;
cin>>a;
is_prime(a);
}
}```