【问题标题】:How can I find the number of pairs a,b<N such that GCD(a,b) = x?如何找到满足 GCD(a,b) = x 的 a,b<N 的对数?
【发布时间】:2012-09-05 18:23:51
【问题描述】:

我正在尝试解决the SPOJ problem PGCD,它询问最大公约数表中出现了多少个素数。

我想到的第一个想法是首先通过筛选生成素数。

然后,对于每个素数p,看看有多少对(ab),其中ab 小于给定的界限,满足GCD(a,b)=p

例如,有多少对小于 (20, 20) 满足 GCD(a,b)=7?

当然,如前所述,ab 是有界的。

那么有可能反转 GCD 吗?还是这个解决方案完全无效?

【问题讨论】:

  • 当然不是。你谈论素数。任何 2 个素数的 GCD 为 1。您对 rev_GCD(1) 有什么期望?有无数对是有效的结果。
  • 我期待那个计数......好像有多少对 (a,b) 满足这个

标签: c++ math primes greatest-common-divisor


【解决方案1】:

显然,GCD 函数是不可逆/不可逆的,因为例如,

  • GCD(10,15) == 5
  • GCD(5, 15) == 5

所以如果给你 5 并尝试猜测输入,这是不可能的。

我可能在这里遗漏了一些东西,因为我不明白你在说什么关于边界,但我认为你有责任更好地解释这个问题。你到底有什么信息,你想计算什么信息?示例输入和输出将非常有用。此外,校对和拼写检查。

【讨论】:

  • 让 a,b 的界限为 5,那么有多少对 (a,b) 满足 GCD(a,b)=2 答案是 3 对是 (2,2) (2 ,4) 和 (4,2)
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2022-04-11
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 2021-05-27
相关资源
最近更新 更多