【名词解释】
第一行输入一个整数
(
),表示需要判断的整数个数。
接下来
行,每行输入一个正整数
(
)。
输出
行,每行对应一个测试用例:若
是素数,输出
;否则输出
。
2 1 2
No Yes
第一个测试用例,
不是素数,输出 No;第二个测试用例
,
是素数,输出 Yes。
#include <stdio.h>
#define N 100001
char arr[N];
char* str[]={"Yes","No"};
int main() {
arr[1]=1;
for(int i=2;i<N;i++){
if(arr[i]==0)for(int j=i+i;j<N;j+=i) arr[j]=1;
}
int n;
scanf("%d",&n);
while(scanf("%d",&n)!=EOF) printf("%s\n",str[arr[n]]);
return 0;
} #include <stdio.h>
#include <math.h>
int main() {
int T;
if (scanf("%d", &T) != 1) {
return 1;
}
for (int i = 0; i < T; i += 1) {
int n;
if (scanf("%d", &n) != 1) {
return 1;
}
if (n == 1) {
printf("No\n");
continue;
}
int m = sqrt(n), r = 0;
for (int j = 2; j <= m; j += 1) {
if (n % j == 0) {
r = 1;
break;
}
}
printf("%s\n", r ? "No" : "Yes");
}
return 0;
} 还是用函数来写比较爽。
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool is_prime(int num)
{
bool prime_falg = true;
if (num <= 1)
{
return false;
}
for (int count = 2; count <= (int)sqrtf(num); count++)
{
if (num % count == 0)
{
prime_falg = false;
break;
}
}
return prime_falg;
}
int main() {
int T = 0, n = 0;
scanf("%d", &T);
while (T--)
{
scanf("%d", &n);
printf("%s\n", is_prime(n) ? "Yes" : "No");
}
return 0;
}