题解: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
posted @ 2026-02-21 20:56  团爸讲算法  阅读(3)  评论(0)    收藏  举报