0

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

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

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

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

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

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


当您进行任何静态引用时,方法/线程局部性可能会完全丢失。由于引用是静态的,指向静态引用的本地字段不在线程堆栈上,它实际上可能被其他线程引用。

如果对象是全局分配的而不是线程局部的,则您具有相同的线程安全效果。

final SomeObject obj = getSomeObject();
public void foo() {
    obj.doSomething();  
}

private SomeObject getSomeObject() {
    // returns singleton
    SpringContext.getBean("someObject");
}
4

1 回答 1

2

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

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

因此,如果给您 5 并尝试猜测输入,这是不可能的。

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

于 2012-09-05T18:27:54.863 回答