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

我想到的第一个想法是先通过筛分产生素数。

然后,对于每个素数p,查看有多少对(a,b)满足GCD(a,b)=p,其中a和b小于给定范围。

例如,小于(20,20)的几对满足GCD(a,b)= 7?

当然,如上所述,a和b是有界的。

那么可以逆转GCD吗?还是这种解决方案完全无效?

最佳答案

显然,GCD功能不可逆/不可逆,例如,


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


因此,如果给定5并尝试猜测输入,则不可能。

我在这里可能会遗漏一些东西,因为我不明白您在说什么边界,但是我认为这是您更好地解释问题的责任。确切地说,您拥有什么信息,以及您想计算什么信息?示例输入和输出将非常有用。另外,校对和拼写检查。

关于c++ - 我如何找到对数a,b <N使得GCD(a,b)= x?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12287548/

10-13 21:27