#P1431. Day7 数论选择与阅读(重制版·12题)
Day7 数论选择与阅读(重制版·12题)
Day7 数论选择与阅读(重制版·12题)
范围:整除、gcd/lcm、同余、质数与筛法;先判断性质,再进行计算。
一、数论基础
第 1 题
的值是( {{ select(1) }} )。
第 2 题
的值是( {{ select(2) }} )。
第 3 题
的值是( {{ select(3) }} )。
第 4 题
满足 且 的最小正整数 是( {{ select(4) }} )。
第 5 题
的正因数个数是( {{ select(5) }} )。
第 6 题
不超过 的质数共有( {{ select(6) }} )。
第 7 题
埃氏筛在处理质数 时通常从 开始标记,主要原因是( {{ select(7) }} )。
- 小于 的合数若含因数 ,已经被更小的质因数处理过
- 从 开始会漏掉
- 一定是第一个合数
- 这样可以把空间复杂度降为
二、阅读程序
程序:整体 gcd、整体 lcm 与互质数对
#include <iostream>
#include <numeric>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<long long> a(n);
for (long long &x : a) cin >> x;
long long g = a[0], l = a[0];
for (int i = 1; i < n; ++i) {
g = gcd(g, a[i]);
l = l / gcd(l, a[i]) * a[i];
}
int cnt = 0;
for (int i = 0; i < n; ++i)
for (int j = i + 1; j < n; ++j)
if (gcd(a[i], a[j]) == 1) ++cnt;
cout << g << " " << l << " " << cnt;
return 0;
}
第 8 题
输入 4 6 10 15 21 时,程序输出( {{ select(8) }} )。
1 210 11 630 12 210 51 210 5
第 9 题
对上述输入,第一次循环结束后变量 g 和 l 分别为( {{ select(9) }} )。
1和2102和2101和6306和21
第 10 题
若把 gcd(a[i], a[j]) == 1 改为 gcd(a[i], a[j]) > 1,上述输入的 cnt 为( {{ select(10) }} )。
第 11 题
当 时,程序显式调用 gcd 的总次数是( {{ select(11) }} )。
第 12 题
计算 lcm 时先执行除法再执行乘法,最主要的好处是( {{ select(12) }} )。
- 保证结果一定不超过
int范围 - 减小中间乘积,降低溢出风险
- 把时间复杂度降为
- 避免调用
gcd