primes - 对于负数, bool 值 isPrime() 应该返回什么?

标签 primes

我有一个函数可以测试这个数字是否是质数。

public static boolean isPrime(int number) {

    if (number == 2) {
        return true;
    } else if (number > 2) {
        //faster method: number is even ? false : test odd divisors
        for (int counter = 2; counter * counter >= number; counter++) {
            if (number % counter == 0) {
                return false;
            }
        }
        return true;
    } else {
        return false; //what should it return 1, 0, negative numbers?   
    }
}

如果数字小于 2,它应该返回什么?这是一个考试问题,测试集将是非负整数。代码质量也会被评估,那么负数的常见处理方式是什么?抛出异常?声明所有负数为质数/合数?

最佳答案

质数(或素数)是大于1的自然数,不能由两个更小的自然数相乘得到。 合数是一个非素数的正整数(即,它有除 1 和它本身以外的其他因子)。

注意

isPrime(1); //false
isComposite(1); //false

返回错误;//它应该返回什么 1, 0, 负数? 这是正确的所有小于 2 的数字都不是素数。也不是复合 Material 。

关于primes - 对于负数, bool 值 isPrime() 应该返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48598869/

相关文章:

Python:列表理解中某处出错了?

python - 为什么这个 'optimized'素数检查器的运行速度与普通版本相同?

c - 帮助使此代码针对 SPOJ 运行得更快

algorithm - haskell 垃圾收集器

Clojure:在 Erathosthene 筛中避免堆栈溢出?

c - 生成从 1 到 n 的素数,当 n > 3 亿时崩溃

c++ - 查找我的算法的运行时间,以查找输入是否为质数

C程序不能显示3000个数

Python 3.2 数论库

java - 计算 2 的极大次方