首页 文章资讯内容详情

用于查找 x 之间的对数的程序,其乘法是 x 并且它们在 Python 中互质

2026-06-03 1 花语

假设有一个函数f(x),它计算(p,q)对的数量,使得

1<p<=q<=x

p和q互质

p*q=x所以如果我们有n。

我们必须为1到n范围内的所有i找到总和f(x[i])。

因此,如果输入类似于12,那么输出将是3,因为x值的范围从1到12。

当x=6时,有效对是(2,3)所以f(6)=1

当x=10时,有效对是(2,5)所以f(10)=1

当x=12时,有效对是(3,4)所以f(12)=1

所以总共有3对。

示例

让我们看看以下实现以获得更好的理解-

from math import sqrt, gcd def solve(n): count = 0 sqr = int(sqrt(n)) + 1 for base in range(2, sqr): for i in range(1, min(base, n //基数-基数+1)): if gcd(base, i) != 1: continue count += (n - i * base) //(基地*基地) return count n = 12 print(solve(n))

输入

12输出结果3