当前位置: 首页 > 面试题库 >

如何为Euler 7项目改进此代码?

仲孙鸣
2023-03-14
问题内容

通过列出前六个质数:2、3、5、7、11和13,我们可以看到第6个质数是13。

第10 001个素数是多少?

我的解决方案:

public class Prime_Number {

    public static boolean isPrime(long n) {
        if ((n > 2 && n % 2 == 0) || (n > 3 && n % 3 == 0) || (n > 5 && n % 5 == 0) || n == 0 || n == 1) {
            return false;
        }
        return true;
    }

    public static void main(String[] args) {
        int count = 0;
        int prime = 0;
        while (prime <= 10001) {
            if (isPrime(count) == true) {
                prime++;
                if (prime == 10001) {
                    System.out.println(count + " is a prime number" + "(" + prime + ")");
                }
            }
            count++;
        }
    }
}

但是它没有给出正确的答案。请帮助我升级代码。例如,程序将91定义为质数,但它不是质数。如何改善呢?


问题答案:

您需要针对每个小于质数平方根的质数测试数字,以确保它是质数。

您仅针对2,3和5进行测试。

因为存储所有素数并不总是在空间上可行的,所以一种常见的技术是测试2,然后测试从3开始的所有奇数。这需要循环。

考虑:

boolean isPrime(long n) {
    if (n < 2) return false;
    if (n == 2) return true;
    if (n % 2 == 0) return false;
    if (n < 9) return true;
    if (n % 3 == 0) return false;
    long max = (long)(Math.sqrt(n + 0.0)) + 1;
    for (int i = 5; i <= max; i += 6) {
        if (n % i == 0) return false;
        if (n % (i + 2) == 0) return false;
    }
    return true;
}


 类似资料:
  • 你好,我正在使用以下函数将数据集中的所有分类值转换为数字,但我想将其转换为使用OneHotEncoder,如何做到这一点? 谢谢

  • 问题内容: 我从SVN中签出了一个项目,但未指定项目类型,因此它作为“默认”项目签出。快速将其转换为“ Java”项目的最简单方法是什么? 我正在使用Eclipse版本3.3.2。 问题答案: **打开.project文件,然后添加Java性质和构建器。 在.classpath中,引用Java库: **

  • 问题内容: 我需要编写一个仅与Java 1.5兼容的项目。我已经安装了Java 1.6。是否存在某种形式的向后兼容性,以使Eclipse用1.5进行编译? 我必须安装Java 1.5才能在此处显示它吗?也许还有另一种方法? 问题答案: 单击添加库按钮。它使你的屏幕指向Java位置。 选择“ 目录 ”,在JRE主页旁边的按钮,然后指向已安装的文件夹位置。 即使只需要1.5个编译器项目,也可以通过在E

  • 我需要编写一个只与Java1.5兼容的项目。我已经安装了Java1.6。是否有某种形式的向后兼容性来让Eclipse用1.5编译? 我必须安装Java1.5才能在这里显示它吗?或者也许还有别的办法?

  • 本文向大家介绍详解如何将已有项目改造为Spring Boot项目,包括了详解如何将已有项目改造为Spring Boot项目的使用技巧和注意事项,需要的朋友参考一下 快速创建一个springboot web工程 以IntelliJ IDEA为例: 1、首先创建一个项目,创建时选择Spring Initializr,然后Next,如下图: 2、填写项目信息,如下图: 3、勾选web 4、最后一步,填写

  • 问题内容: 我刚刚开始使用Java 8,并且正在使用以下代码片段: 如何将其转换为Lambda样式? 问题答案: 如果是 功能界面 ,则可以 这是您问题中其他类的存根实现的完整示例: