この質問がありました。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
。
まず、すべての素数を見つけてリストに保存することができます。次に、2つのネストされたfor-loopsを使用して、どの組み合わせが機能するかを調べることができます。 – Christian
iとjをforループ内でローカルに宣言しないでください。壊れたときにそれらの値が必要です。他の変数の半分は冗長です。これには、p、q、temp、flagp、flagqが含まれます。 – Necreaux
「n」より小さいすべての素数をリストすることができます。リストをループし、それが 'p'であると仮定します。除算 'n/p' =>' q'を計算する。 'q'が素数かどうかをチェックします。 –