本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N
(≤ 10),随后N
行,每行给出一个小于231的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes
,否则输出No
。
输入样例:
2
11
111
输出样例:
Yes
No
程序源码:
#include <stdio.h> // 引入标准输入输出头文件
#include <math.h> // 引入数学函数头文件
// 定义函数 if_sishu,用于判断一个数是否为素数
int if_sishu(int n)
{
if (n == 1) // 如果 n 等于 1,则返回 0,表示不是素数
{
return 0;
}
for (int i = 2; i <= sqrt(n); i++) // 从 2 到 sqrt(n) 遍历每个数
{
if (n % i == 0) // 如果 n 能被 i 整除,则不是素数,返回 0
{
return 0;
}
}
return 1; // 循环结束都没有找到能整除 n 的数,说明是素数,返回 1
}
int main() // 主函数
{
int n, i, x; // 定义变量 n、i、x
scanf("%d", &n); // 从标准输入读取一个整数,赋值给 n
for (i = 0; i < n; i++) // 循环 n 次
{
scanf("%d", &x); // 从标准输入读取一个整数,赋值给 x
if (if_sishu(x)) // 判断 x 是否为素数
{
printf("Yes\n"); // 如果是素数,输出 "Yes"
}
else
{
printf("No\n"); // 如果不是素数,输出 "No"
}
}
return 0; // 返回 0,表示程序正常结束
}