特定の数値が 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)、など。
何か案は?
ありがとう!
特定の数値が 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)、など。
何か案は?
ありがとう!
素数テストを行っているようですね。ウィキペディアの記事をチェックしてください。いくつかのアルゴリズムから選択できます。
それが役立つことを願っています!
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
}
数値が 2 の倍数かどうかを確認するには、mod (%) 演算子を使用します。それで
if((x%2 == 0) || (x%3 == 0) )
//x is a multiple of 2 or 3
これは、少なくとも 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;
}