课程目录展开/折叠
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;
}
本节课课后练习题
- 详见题单 - T1004 - CSP-J & GESP【课程4】算法 - 第2章 入门算法
本节课答疑
建议大家有问题先通过AI答疑(比如:DeepSeek 等),AI时代需要学会使用AI辅助学习
陈远龙老师视频讲解:如何使用DeepSeek进行答疑?
通过AI未能获得满意解答的,可以联系陈远龙老师答疑
目录