cpp
复制代码
#include <iostream> //引入输入/输出流头文件,用于实现标准输入输出操作
#include <cmath> //引入数学函数库头文件,用于调用数学相关的函数,这里主要是为了使用sqrt函数来求平方根
using namespace std;
//函数声明:判断一个整数是否为质数(素数)
//参数:
//x:要判断的整数
//返回值:如果x是质数则返回true(在C++中用1表示),否则返回false(在C++中用0表示)
bool isP(int x);
int main()
{
//定义一个包含100个整数的数组A,并初始化为0
//这里数组A可用于存储输入的一系列整数
int A[100] = { 0 };
//定义一个整数变量n,用于存储后续要输入的整数个数
int n;
//从标准输入读取整数n的值,即要输入的整数的个数
cin >> n;
//通过循环,从标准输入依次读取n个整数,并存储到数组A中
for (int i = 0; i < n; i++)
cin >> A[i];
//再次通过循环遍历数组A中的每个元素
for (int j = 0; j < n; j++)
{
//对于数组A中的每个元素A[j],调用isP函数判断其是否为质数
//如果是质数,则将该元素输出到控制台,每个质数之间用空格隔开
if (isP(A[j]))
cout << A[j] << " ";
}
return 0;
//函数定义:实现判断一个整数是否为质数(素数)的功能
//参数:
//x:要判断的整数
//返回值:如果x是质数则返回true(在C++中用1表示),否则返回false(在C++中用0表示)
bool isP(int x)
{
//特殊情况判断:如果x等于2,2是质数,直接返回true(1)
if (x == 2)
return 1;
//特殊情况判断:如果x等于1,1不是质数,直接返回false(0)
if (x == 1)
return 0;
//通过循环从2开始到x的平方根取整(包含)来判断x是否能被整除
//如果能被其中某个数整除,说明x不是质数,返回false(0)
for (int i = 2; i <= sqrt(x); i++)
{
if (x % i == 0)
return 0;
}
//如果循环结束都没有找到能整除x的数,说明x是质数,返回true(1)
return 1;
}