我被给了这个问题。从p和q是质数时找出n = p * q的'p'和'q'
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);
}
}
我能找到素数检查。但我似乎无法找到如何循环,找到匹配的p
和q
。
您可以先找到所有素数并将它们保存在列表中。然后你可以使用两个嵌套for循环来检查哪个组合工作。 – Christian
不要在for循环中声明i和j是本地的。当你突破时你需要这些价值。其他一半的变量是多余的。这包括p,q,temp,flagp,flagq。 – Necreaux
我可以考虑列出小于'n'的所有素数。遍历列表并假设它是'p'。计算分部'n/p' =>'q'。检查'q'是否为素数。 –