java - java中的素数测试

标签 java

public static boolean isPrime(int number)
{
  boolean result = true;

  if (number == 0)
  {
     result = false;
  }

  for (int i=2; i < number/2; i++)
  {
     if (number % i == 0)
     {
        result = false;
     }
  }

  return result;
}

知道为什么当 int number = 4 时结果返回 true 吗?我可以做什么来解决这个问题?我对我的代码很满意,但为什么 4 返回 true?

最佳答案

for (int i=2; i < number/2; i++)

如果您输入4在这里,它永远不会进入循环,因为

2 < 4 / 2 

从不等于true (2不小于2)。

相反,请使用 <= .

关于java - java中的素数测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22134469/

相关文章:

java - 创建 QName 时本地部分不能为 “null”

java - 如何在行为级别上测试我的 Java/Android 代码?

java - 哪些对象在 Java Card 中持久存在,何时存在?

java - 任何java项目的eclipse构建路径中的项目和库有什么区别

java - Spark Cassandra 连接器基本简单程序出现 Spark 日志记录错误

java - DB2 控制中心中的操作是否有可能阻止 java 代码中的查询?

java - 如何通过基于 Java 的配置在 Hibernate 中的查询上使用分页

java - 如何在 Java Weka API 中使用类不平衡技术 (SMOTE)?

java - 正则表达式只匹配第一个子字符串

Java泛型强制抽象方法的返回类型