内容:
给出N个正整数,检测每个数是否为质数。如果是,输出"Yes",否则输出"No"。
Input
第1行:一个数N,表示正整数的数量。(1 <= N <= 1000)
第2 - N + 1行:每行1个数(2 <= Sii <= 10^9)
Output
输出共N行,每行为 Yes 或 No。
Sample Input
5 2 3 4 5 6
Sample Output
Yes Yes No Yes No
解题剖析:
My code:
#include<stdio.h>
const int MAXN = (int)1e7 + 5;
int isprime(int n)
{
if(n == 1) return 0; //不是素数,返回0
for(int i = 2; i * i <= n; ++i) //i*i 缩小范围,缩短运行时间
{
if(n % i == 0) return 0;
}
return 1; //是素数,返回1
}
int main()
{
int T, n;
while(scanf("%d", &T) != EOF)
{
while(T--)
{
scanf("%d", &n);
printf("%s\n", !isprime(n) ? "No" : "Yes"); //isprime是判断素数的函数
}
}
return 0;
}