1 条题解

发布要求:学生须先通过本题;教师和管理员可直接维护官方内容。内容应说明核心思路、关键步骤、正确性理由和复杂度。 只粘贴代码不会通过审核。

你尚未通过该题,通过后才能发布题解。

  • 0
    @ 2066-10-31 23:19:53 官方题解 源题同步

    01|2025-03-L5-SC-05

    学生训练答案:D

    原卷事实

    四项均给出乘积分解。

    必要假设

    要求因子全部为质数。

    C++11 / 算法语义

    只有2、3、5均为质数且乘积为30。

    命题预期

    选择D。

    推导结论

    训练答案D。

    02|2025-06-L5-TF-01

    学生训练答案:T

    原卷事实

    代码循环执行a%b并交换角色。

    必要假设

    a、b为正整数。

    C++11 / 算法语义

    无论初始a与b大小,余数递减并最终在b==0时返回最大公约数。

    命题预期

    判断为真。

    推导结论

    学生训练答案T。

    03|2025-06-L5-SC-08

    学生训练答案:B

    原卷事实

    题目询问唯一分解定理。

    必要假设

    唯一性忽略质因数排列顺序。

    C++11 / 算法语义

    每个大于1的整数都可唯一分解为质数乘积;对合数的B表述成立。

    命题预期

    选择B。

    推导结论

    学生训练答案B。

    04|2025-12-L5-SC-04

    学生训练答案:D

    原卷事实

    a-b=24。

    必要假设

    模数m取正整数。

    C++11 / 算法语义

    a与b模m同余等价于m整除24。

    命题预期

    3、4、6均整除24,9不整除。

    推导结论

    训练答案D。

    05|2025-12-L5-SC-05

    学生训练答案:D

    原卷事实

    gcd1递归,gcd2循环。

    必要假设

    比较相同有效输入和普通实现开销。

    C++11 / 算法语义

    两者渐近时间相同,递归还使用调用栈,不能据此保证更高效率。

    命题预期

    D是错误说法。

    推导结论

    训练答案D。

    06|2025-12-L5-SC-06

    学生训练答案:B

    原卷事实

    题目询问算术基本定理。

    必要假设

    不计质因数排列次序。

    C++11 / 算法语义

    大于1的整数具有唯一的质因数分解。

    命题预期

    选择B。

    推导结论

    训练答案B。

    07|2026-03-L5-SC-04

    学生训练答案:A

    原卷事实

    每次递归参数变为(b,a%b)。

    必要假设

    正整数输入。

    C++11 / 算法语义

    48%18=12,18%12=6,12%6=0。

    命题预期

    A给出完整调用序列。

    推导结论

    训练答案A。

    08|2025-03-L5-TF-03

    学生训练答案:T

    原卷事实

    题目比较线性筛与埃氏筛。

    必要假设

    按标准线性筛实现。

    C++11 / 算法语义

    线性筛通过最小质因数约束使每个合数只被生成一次,总复杂度O(n)。

    命题预期

    判断为真。

    推导结论

    训练答案T。

    09|2025-03-L5-SC-04

    学生训练答案:B

    原卷事实

    代码先令big=84、small=60,再递归gcd(60,24)。

    必要假设

    把初始参数对视为第一步,第一次递归参数对视为第二步。

    C++11 / 算法语义

    84 mod 60=24,所以第二层参数为60和24。

    命题预期

    官方以递归参数对计步。

    推导结论

    训练答案B;解析显著说明计步约定。

    10|2025-06-L5-TF-02

    学生训练答案:T

    原卷事实

    函数返回a*b/gcd(a,b),官方答案T。

    必要假设

    a*b在int中可表示,gcd非零。

    C++11 / 算法语义

    对正整数,lcm(a,b)=a*b/gcd(a,b);但先乘后除在int溢出时行为未定义。

    命题预期

    命题预期忽略溢出边界判断为真。

    推导结论

    学生训练答案T;显著标注乘积可表示的必要前提。

    11|2025-06-L5-TF-03

    学生训练答案:F

    原卷事实

    代码试图把整数j加入vector<int>,写成prime_factor[i] = prime_factor[i] + j。

    必要假设

    按原卷代码逐字解释。

    C++11 / 算法语义

    标准vector<int>没有与int相加的operator+,代码不能通过C++11编译,因而不能产生题述输出。

    命题预期

    判断为假。

    推导结论

    学生训练答案F。

    12|2025-06-L5-SC-06

    学生训练答案:D

    原卷事实

    gcd0使用辗转相除,gcd1从small向下枚举公因数。

    必要假设

    两个输入为正整数。

    C++11 / 算法语义

    欧几里得算法为对数级,逆序枚举最坏线性;若把循环改为i>1,互质时会漏掉公约数1并仍靠末尾return 1,输出虽未变但“应该修改”不成立。

    命题预期

    错误说法D。

    推导结论

    学生训练答案D。

    13|2025-06-L5-SC-07

    学生训练答案:D

    原卷事实

    题目把逐数试除与两种筛法比较。

    必要假设

    按标准埃氏筛和线性筛实现。

    C++11 / 算法语义

    逐数试除有重复工作;埃氏筛和线性筛更适合生成区间素数。线性筛为O(n),不能笼统说埃氏筛比线性筛效率更高。

    命题预期

    错误说法D。

    推导结论

    学生训练答案D。

    14|2025-09-L5-TF-01

    学生训练答案:T

    原卷事实

    代码对n和其十进制字符串数位和分别取模9。

    必要假设

    按非负十进制整数,to_string中无负号。

    C++11 / 算法语义

    非负n与n的数位和对9同余,两个判定一致;负数字符串需额外处理'-'。

    命题预期

    命题预期T。

    推导结论

    训练答案T;解析显示非负假设。

    15|2025-09-L5-TF-02

    学生训练答案:F

    原卷事实

    原卷函数声明为void,代码写return patternLength,且卷面行末显示全角分号。

    必要假设

    不静默修正返回类型或标点。

    C++11 / 算法语义

    该代码不是合法C++11函数;即使改为int并修正分号,表达式返回lcm(4,6)=12,不是2。

    命题预期

    判断为F。

    推导结论

    训练答案F,原卷代码完整保真。

    16|2025-09-L5-SC-05

    学生训练答案:B

    原卷事实

    循环执行辗转相除。

    必要假设

    输入为正整数。

    C++11 / 算法语义

    终止时b==0,a保存gcd。

    命题预期

    选择B。

    推导结论

    训练答案B。

    17|2025-09-L5-TF-06

    学生训练答案:T

    原卷事实

    题目给出每个合数只由最小质因子筛一次的不变式。

    必要假设

    按标准线性筛实现。

    C++11 / 算法语义

    每个合数仅生成一次,总复杂度O(n)。

    命题预期

    判断为T。

    推导结论

    训练答案T。

    18|2025-09-L5-SC-08

    学生训练答案:B

    原卷事实

    题目比较理论复杂度与常数表现。

    必要假设

    按常见数组实现与给定范围。

    C++11 / 算法语义

    线性复杂度不直接推出实测必然更快;埃氏筛常数可更小。

    命题预期

    错误项B。

    推导结论

    训练答案B。

    19|2025-09-L5-SC-09

    学生训练答案:B

    原卷事实

    题目询问唯一分解定理。

    必要假设

    按正整数范围。

    C++11 / 算法语义

    每个大于1的整数可唯一分解为素数幂之积,忽略因子顺序。

    命题预期

    选择B。

    推导结论

    训练答案B。

    20|2025-12-L5-TF-02

    学生训练答案:T

    原卷事实

    代码返回a/gcd(a,b)*b。

    必要假设

    a、b为正且中间结果与最小公倍数均可由int表示。

    C++11 / 算法语义

    先除后乘在数学上等于a*b/gcd,能减少但不能消除溢出风险。

    命题预期

    命题在常规可表示输入范围取真。

    推导结论

    训练答案T;解析显著列出int可表示前提。

    21|2025-12-L5-TF-04

    学生训练答案:F

    原卷事实

    题面用“都应当优先”作绝对判断。

    必要假设

    比较标准实现。

    C++11 / 算法语义

    渐近界较低不等于在所有规模、常数、内存与实现条件下都优先。

    命题预期

    绝对化结论为假。

    推导结论

    训练答案F。

    22|2026-03-L5-SC-05

    学生训练答案:C

    原卷事实

    内层访问primes[j]。

    必要假设

    j必须始终小于primes.size()。

    C++11 / 算法语义

    标准线性筛遍历已有素数并按最小质因数停止。

    命题预期

    选择C。

    推导结论

    训练答案C。

    23|2026-03-L5-SC-06

    学生训练答案:C

    原卷事实

    i为当前未筛除质数。

    必要假设

    (long long)i*i可表示。

    C++11 / 算法语义

    i*k且k<i的倍数已在处理更小质因子时标记。

    命题预期

    选择C。

    推导结论

    训练答案C。

    24|2026-03-L5-TF-06

    学生训练答案:T

    原卷事实

    题面限定n>1。

    必要假设

    平方根按实数边界。

    C++11 / 算法语义

    若n合数,则至少有一个质因子不超过sqrt(n);其逆否命题成立。

    命题预期

    判断为真。

    推导结论

    训练答案T。

    25|2026-03-L5-TF-09

    学生训练答案:F

    原卷事实

    题面把唯一标记者写为最大质因子。

    必要假设

    按标准欧拉筛。

    C++11 / 算法语义

    线性筛使每个合数由其最小质因数路径标记一次,不是最大质因子。

    命题预期

    判断为假。

    推导结论

    训练答案F。

    26|2026-06-L5-TF-03

    学生训练答案:T

    原卷事实

    两函数都执行欧几里得算法。

    必要假设

    a、b为正整数。

    C++11 / 算法语义

    递归版与循环版均迭代(a,b)->(b,a%b)直至b=0。

    命题预期

    判断为T。

    推导结论

    训练答案T。

    27|2026-06-L5-SC-04

    学生训练答案:B

    原卷事实

    代码递归为gcd(b,a%b)。

    必要假设

    输入为105和45。

    C++11 / 算法语义

    105%45=15,45%15=0。

    命题预期

    选项B。

    推导结论

    训练答案B。

    28|2026-06-L5-SC-06

    学生训练答案:B

    原卷事实

    题目询问埃氏筛基本过程。

    必要假设

    按标准埃氏筛。

    C++11 / 算法语义

    从素数出发标记其倍数;同一合数可能被多次遇到。

    命题预期

    选项B。

    推导结论

    训练答案B。

    29|2026-06-L5-SC-08

    学生训练答案:C

    原卷事实

    循环在n能被2整除时计数并除以2。

    必要假设

    n初值40。

    C++11 / 算法语义

    40=2³×5,循环三次。

    命题预期

    选项C。

    推导结论

    训练答案C。

    30|2026-06-L5-TF-09

    学生训练答案:T

    原卷事实

    题目陈述唯一分解定理。

    必要假设

    自然数大于1且忽略质因子顺序。

    C++11 / 算法语义

    质因数分解存在且唯一。

    命题预期

    判断为T。

    推导结论

    训练答案T。

    31|2025-03-L5-SC-06

    学生训练答案:C

    原卷事实

    内层循环访问primes[j]并标记i*primes[j]。

    必要假设

    n为非负且容器按代码初始化。

    C++11 / 算法语义

    必须先保证j未越界,再保证乘积不超过n;&&从左到右短路。

    命题预期

    C同时满足两个边界。

    推导结论

    训练答案C。

    32|2025-06-L5-SC-05

    学生训练答案:C

    原卷事实

    代码先特判2、3、5,再排除2、3、5的倍数,并按7、11、13、17等序列试除。

    必要假设

    输入为题干所述正整数,sqrt可用。

    C++11 / 算法语义

    大于3的质数必为6k±1;只需检查不超过sqrt(n)的可能质因数。D改为逐一试除虽可判定,但执行时间不同。

    命题预期

    选择C。

    推导结论

    学生训练答案C。

    33|2025-06-L5-TF-10

    学生训练答案:T

    原卷事实

    代码按primes递增枚举并在i%primes[j]==0时break。

    必要假设

    n使i*primes[j]可在int中表示,容器分配成功。

    C++11 / 算法语义

    break保证每个合数由最小质因数对应的组合首次筛去,总工作量线性。若乘积溢出则标准不保证。

    命题预期

    命题预期判断为真。

    推导结论

    学生训练答案T;显著标注乘积可表示的输入前提。

    34|2025-09-L5-SC-04

    学生训练答案:B

    原卷事实

    代码按因子对累加真因子。

    必要假设

    命题默认i*i在int可表示范围内。

    C++11 / 算法语义

    枚举到sqrt(n)即可;i*i在超出int时会涉及有符号溢出。

    命题预期

    命题预期B。

    推导结论

    训练答案B;解析保留输入边界假设。

    35|2025-09-L5-SC-06

    学生训练答案:D

    原卷事实

    外层遍历i,内层标记i的倍数。

    必要假设

    命题默认i*i与n+1均未发生int溢出。

    C++11 / 算法语义

    小于i*i的i倍数已由更小因子标记,可从i*i开始;超范围时应用更安全边界。

    命题预期

    命题预期D。

    推导结论

    训练答案D;解析明示整型边界假设。

    36|2025-09-L5-SC-07

    学生训练答案:A

    原卷事实

    代码用已知素数p标记p*i。

    必要假设

    输入n在乘法安全范围。

    C++11 / 算法语义

    当p整除i时停止,保证合数由最小质因子生成一次。

    命题预期

    选择A。

    推导结论

    训练答案A。

    37|2025-12-L5-SC-07

    学生训练答案:A

    原卷事实

    内层应从primes[0]起并在乘积超过n时停止。

    必要假设

    i*primes[j]在int中可表示,且n至少为2。

    C++11 / 算法语义

    结合整除时break,每个合数由最小质因数路径标记。

    命题预期

    A给出标准线性筛边界。

    推导结论

    训练答案A;解析提示乘积可表示前提。

    38|2026-06-L5-SC-05

    学生训练答案:A

    原卷事实

    代码以primes[j]*i标记合数。

    必要假设

    n与乘法在int安全范围。

    C++11 / 算法语义

    当primes[j]整除i时停止,保证每个合数只由最小质因子筛到。

    命题预期

    选项A。

    推导结论

    训练答案A。

    信息

    ID
    83
    时间
    1000ms
    内存
    256MiB
    难度
    轻松上手
    标签
    递交数
    0
    已通过
    0
    上传者