题目传送门:
P2398 GCD SUM - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
前言:
本题涉及到 欧拉函数,素数判断,质数,筛法 ,三大知识点,相对来说还是比较难的。
本题要求我们计算 ,也就是对所有满足
和
的整数对 ,求出它们的最大公约数并将这些最大公约数累加起来。
#使用暴力枚举思路:
1、原理:
最直接的方法就是通过两层嵌套循环遍历所有可能的 组合,对于每一对
计算它们的最大公约数
,并将结果累加到总和当中。
代码示例(以Python语言示例):
sum = 0
for i from 1 to n:
for j from 1 to n:
sum = sum + gcd(i, j)
print(sum)
##复杂度分析:
1、时间复杂度:
。因为有两层嵌套循环,循环次数为
,而计算
通常使用欧几里得算法,其时间复杂度为
,最坏情况下为O(log n)。
2、空间复杂度: