//方法1
#include <stdio.h>
#include<math.h>
int is_su(int n)
{
    int m = 2;
    while(m<=sqrt(n))//避免n的值超出整形范围,取开根后计算
    {if(n%m==0)
    return 0;
    else
    m++;
    }
    return 1;
    
}
int main() {
   int T = 0;
   int n[10] = {0};
   int i = 1;
   scanf("%d",&T);
   while(i<=T)
   {
    scanf("%d",&n[i]);
    if(n[i]==1)//1的情况特殊不符合,单独举例
    {printf("No\n");
    i++;
    continue;
    }
    if(is_su(n[i])==1)//定义新函数,避免循环套循环太复杂。
    printf("Yes\n");
    else
    printf("No\n");
    i++;
   }
    return 0;
}
//方法二
#include <stdio.h>
int main()
{
    int n, i, j,m;
    scanf("%d", &n);
for (i = 0; i < n; i++)     /*控制输入的循环次数*/
{
    scanf("%d", &j);
    for (m = 2; m <= j; m++)    /*判断是否是素数*/
    {
        if ((j % m) == 0)
            break;
    }
    if (j == m)                 /*判断标准就是m是否能够循环到j值,中途就停止循环说明是合数,最后才停说明是素数*/
        printf("Yes\n");
    else
        printf("No\n");
}
    return 0;
}

第一种方法适用于n值较大,可能会超出整形范围的情况。

第二种方法适用于n值较小,不会超出整形范围的情况。