寻找一个公式来检查数字是否是数字 2 或更大乘以数字 3 或更大的乘积

Looking for a formula to check if a number is the product of a number 2 or greater times a number 3 or greater

本文关键字:数字 是否是 寻找 一个 检查      更新时间:2023-09-26

我正在寻找一个公式,用于在 IF 语句中用于确定给定的数字是否是数字 2 或更大的乘以数字 3 或更大的乘积。

例如,6 是满足要求的最小数字 (2 x 3)。 7 不做,8 做 (2 x 4),9 做 (3 x 3),10 做 (2 x 5),11 不做,12 做 (2 x 6) 等。

有什么想法吗?

谢谢!

听起来你在做素数测试。 你应该看看维基百科的文章 - 他们有几种算法可供选择。

希望对您有所帮助!

要检查数字是否是 2 的倍数,请使用 mod (%) 运算符。所以

if((x%2 == 0) || (x%3 == 0) )
   //x is a multiple of 2 or 3
这将找到 n 的最小因子,该因子至少

为 2,然后找到大于该因子且大于 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;
}

x 需要是两个因子的倍数...(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
}