2017-09-08 6 views
0

任意の数から因子ペアの数を見つける必要があります。私は実際にどのようにこれを始めるべきか分かりませんし、誰かができることを期待していました。私を助けるために。ここでJavascript:任意の整数から因子ペアを見つける方法

+0

この種のことを行うことができるNPMの「ビッグ整数」パッケージを検索しましたか?生のJavaScriptの整数は非常に大きくはない( 'Number.MAX_SAFE_INTEGER'まで)ので、このような操作は普通の数字では必要ないのです。 –

+0

これはあなたがリンクしたソースコードからは些細なはずです。各ペアを出力する代わりに、リンクされたコードがペアを出力するたびに変数をインクリメントし、 'doit()'の最後に出力します。 –

答えて

0

それを行うにはどのような考え方である:

var anyNumber = 6; 
var count = 0; 
var number1 = 0; 
var number2 = anyNumber; 
for (var i = 1; i < anyNumber; i++){ 
    if (anyNumber % i === 0){ 
     number1 = i; 
     number2 = anyNumber/i; 
    if (number2 >= number1){ 
     count++ 
    } else { 
     break; 
    } 
    } 
} 
alert(count); 

あなたはdon'wは、ユニークなペアの結果を持っている場合は、これだけ無視:

if (number2 >= number1) 

をあなたはどの番号にanyNumberを変更することができますあなたは欲しい。上記のコードは、number2がnumber1より小さい(一意のペア)時点に達するまでループします。

0

あなたは既にthe page you mentionnedのソースから、それを知らずに

を答えを持っていた:

function doit(){ 
    a=document.factors.num.value; //number to be evaluated 
    checker=Math.sqrt(a); //maximum divisor 
    output=""; 

    for (x=1; x<=checker; x++) 
    { 
     c=a/x; 
     d=Math.floor(c); 
     // compare integer answer and division answer 
     if(c==d){ 
     output = output + "factor pair = " + c + "," + x + "\n"; 
     } 
    } 
document.factors.worksp.value=output; 
} 

それは解決策を理解するために、コメントでも十分です。 if(c == d)のケースに入るたびに1つのペアが存在するので、ジョブはそれからかなり完了しています。

関連する問題