题解:AcWing 866 试除法判定质数
【题目来源】
AcWing:866. 试除法判定质数 - AcWing题库
【题目描述】
给定 \(n\) 个正整数 \(a_i\),判定每个数是否是质数。
【输入】
第一行包含整数 \(n\)。
接下来 \(n\) 行,每行包含一个正整数 \(a_i\)。
【输出】
共 \(n\) 行,其中第 \(i\) 行输出第 \(i\) 个正整数 \(a_i\) 是否为质数,是则输出 Yes,否则输出 No。
【输入样例】
2
2
6
【输出样例】
Yes
No
【算法标签】
《AcWing 866 试除法判定质数》 #数学知识# #质数# #试除法#
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int n; // 输入数字的个数
// 判断一个数是否为质数
bool is_prime(int n)
{
// 小于2的数不是质数
if (n < 2)
return false;
// 检查从2到√n的因数
for (int i = 2; i <= n / i; i++)
{
// 如果n能被i整除,则不是质数
if (n % i == 0)
return false;
}
return true; // 否则是质数
}
int main()
{
// 输入数字的个数
cin >> n;
// 处理每个数字
for (int i = 1; i <= n; i++)
{
int x;
cin >> x; // 输入待判断的数字
// 判断并输出结果
if (is_prime(x))
cout << "Yes" << endl;
else
cout << "No" << endl;
}
return 0;
}
【运行结果】
2
2
Yes
6
No
浙公网安备 33010602011771号