0

特定の数値が 2 以上の数値と 3 以上の数値の積であるかどうかを判断するために IF ステートメントで使用する数式を探しています。

たとえば、6 は要件 (2 x 3) を満たす最小の数です。7 しない、8 する (2 x 4)、9 する (3 x 3)、10 する (2 x 5)、11 しない、12 する (2 x 6)、など。

何か案は?

ありがとう!

4

4 に答える 4

5

素数テストを行っているようですね。ウィキペディアの記事をチェックしてください。いくつかのアルゴリズムから選択できます。

それが役立つことを願っています!

于 2012-06-08T18:57:33.667 に答える
0

xは2つの因子の倍数である必要があります...(y、z)

flag = false; (boolean. set when found);
for(var y = 2; y < x; y++){
   for(var z = 3; z <= (x/y); z++){
       if(y*z == x){
          flag = true;
       }
   }  
}
if(flag){
  now we know that x meets the requirements
}
于 2012-06-08T19:06:47.997 に答える
0

数値が 2 の倍数かどうかを確認するには、mod (%) 演算子を使用します。それで

if((x%2 == 0) || (x%3 == 0) )
   //x is a multiple of 2 or 3
于 2012-06-08T18:56:11.687 に答える
0

これは、少なくとも 2 である n の最小の因数を見つけてから、それよりも大きく 3 よりも大きい最小の因数を見つけます。見つかったら、true を返します。

function myFunction(n) {
    if (isNaN(n) || !isFinite(n) || n%1 || n<6) return false;
    var m = Math.sqrt(n);
    for (var i = 2; i <= m; i++) {
        if (n % i == 0) {
            var divided = n / i;
            for (var j = (i > 2) ? i : 3; i <= n / i; i++) {
                if (divided % j == 0) {
                    return true;
                }
            }
        }
    }
    return false;
}
于 2012-06-08T19:04:03.970 に答える