gpt4 book ai didi

java - 当 p 和 q 是素数时,找到 n=p*q 的 'p' 和 'q'

转载 作者:行者123 更新时间:2023-12-01 16:48:34 25 4
gpt4 key购买 nike

有人向我提出了这个问题。

n = 77

n = p*q

p and q is a prime number

用蛮力找到p和q。

到目前为止我的代码:

public class If {

public static void main(String[] args) {

int p = 3, q = 3;
int n = 77;
int temp = p*q;
boolean flagp, flagq = false;
while (temp != n && p <= 77)
{
for(int i = 2; i <= p/2; ++i)
{
// condition for nonprime number
if(p % i == 0)
{
flagp = true;
break;
}
p = p+2;
q = 3;
for(int j = 2; j <= q/2; ++j)
{
// condition for nonprime number
if(q % j == 0)
{
flagq = true;
break;
}
q = q+2;
temp = p*q;
}
}
}
System.out.println(temp);
}
}

我能够找到质数检查。但我似乎找不到如何循环它并找到匹配的 pq

最佳答案

您不需要 p 的循环和 q 的循环。每当您找到满足 n%q == 0 的 q 时,您就可以计算 p = n/q。然后,创建一个函数来检查 p 和 q 是否都是素数,如果是,则停止循环执行并打印它们。

暴力编辑:我不好,暴力不是我的事,我们的老师把我们关进大学地下室,如果我们用它来解决某些问题,就会用铁链打我们。因此,这里使用暴力破解的方法就是将所有可能的 p 和 q 从 2 乘以 n/2,然后检查是否 p*q == n。无需更多的优化或限制即可使其成为美丽且缓慢的强力算法。

PD:现在我注意到,也许这实际上并不是暴力破解,算法类已经扰乱了我的思维。感谢上帝,我没有接受欧拉定理。

关于java - 当 p 和 q 是素数时,找到 n=p*q 的 'p' 和 'q',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com