我有一个函数可以测试这个数字是否是质数。
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/