我被給了這個問題。從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'是否爲素數。 –