修改密码

CSP-J & GESP【课程4】算法

更新中

陈远龙老师主讲 & 答疑

课程题单 - T1004

未购买 · 可先试学8节课

课程目录展开/折叠

2.2 枚举法【02】

视频时长:38:29
播放快捷键

播放/暂停:空格(或鼠标单击)      全屏:F(或鼠标双击)      退出全屏:Esc

快进10 / 30 / 60秒:方向键→ / Ctrl + 方向键→ / Shift + 方向键→

快退10 / 30 / 60秒:方向键← / Ctrl + 方向键← / Shift + 方向键←

本节课讲解配套PPT&板书:

本节课讲解到的源代码

源代码下载:2.2 枚举法【02】-源代码下载

1. 【例题2-1】P1080-素数判断-1
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    // i : 枚举的是因子 
    for (int i = 2; i <= n - 1; i ++)
    {
        if (n % i == 0)
        {
            cout << "No";
            return 0;
        }
    }
    cout << "Yes";

    return 0;
}
2. 【例题2-1】P1080-素数判断-2
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 2147483647
    int n;
    cin >> n;
    if (n == 1)
    {
        cout << "No";
        return 0;
    }
    // i : 枚举的是因子 
    for (int i = 2; i <= n - 1; i ++)
    {
        if (n % i == 0)
        {
            cout << "No";
            return 0;
        }
    }
    cout << "Yes";

    return 0;
}
3. 【例题2-1】P1080-素数判断-3
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 2147483647
    int n;
    cin >> n;
    if (n == 1)
    {
        cout << "No";
        return 0;
    }
    // i : 枚举的是因子 
    // 优化了下:2 - sqrt(n) 
    for (int i = 2; i <= sqrt(n); i ++)
    {
        if (n % i == 0)
        {
            cout << "No";
            return 0;
        }
    }
    cout << "Yes";

    return 0;
}
4. 【例题2-1】P1080-素数判断-4
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 2147483647
    int n;
    cin >> n;
    if (n == 1)
    {
        cout << "No";
        return 0;
    }
    // i : 枚举的是因子 
    // 优化了下:2 - sqrt(n) 
    // i * i <= n
    for (int i = 2; i * i <= n; i ++) // i * i容易溢出 i + i容易溢出 
    {
        if (n % i == 0)
        {
            cout << "No";
            return 0;
        }
    }
    cout << "Yes";

    return 0;
}
5. 【例题2-1】P1080-素数判断-5
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 2147483647  9223372036854775807
    // cout << LONG_LONG_MAX << endl;
    // cout << LLONG_MAX << endl;
    int n;
    cin >> n;
    if (n == 1)
    {
        cout << "No";
        return 0;
    }
    // i : 枚举的是因子 
    // 优化了下:2 - sqrt(n) 
    // i * i <= n
    for (long long i = 2; i * i <= n; i ++) // i * i容易溢出 i + i容易溢出 
    {
        if (n % i == 0)
        {
            cout << "No";
            return 0;
        }
    }
    cout << "Yes";

    return 0;
}
6. 【例题2-1】P1080-素数判断-6
#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 2147483647  9223372036854775807
    // cout << LONG_LONG_MAX << endl;
    // cout << LLONG_MAX << endl;
    int n;
    cin >> n;
    if (n == 1)
    {
        cout << "No";
        return 0;
    }
    // i : 枚举的是因子 
    // 优化了下:2 - sqrt(n) 
    // i * i <= n
    for (int i = 2; i <= n / i; i ++) // i * i容易溢出 i + i容易溢出 
    {
        if (n % i == 0)
        {
            cout << "No";
            return 0;
        }
    }
    cout << "Yes";

    return 0;
}

本节课课后练习题

  1. 详见题单 - T1004 - CSP-J & GESP【课程4】算法 - 第2章 入门算法

本节课答疑

建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习

陈远龙老师视频讲解:如何使用DeepSeek进行答疑?

通过AI未能获得满意解答的,可以联系陈远龙老师答疑

目录