gpt4 book ai didi

java - 有没有更好的方法来做到这一点?(如果输入是 1 和 1000000 永远这样做)

转载 作者:行者123 更新时间:2023-11-29 08:09:37 25 4
gpt4 key购买 nike

给定两个整数 N 和 M(N ≤ M),输出 N 和 M 之间的所有素数,每行一个。

N和M为小于或等于1,000,000,000的正整数。 N 和 M 之间的差将小于或等于 5,000,000。

示例输入

5 20

示例输出

5 7 11 13 17 19

import java.util.*;

public class primes2 {
public static void main (String[] args){

Scanner scan = new Scanner (System.in);
long num1,num2,i;

num1=scan.nextInt();
num2=scan.nextInt();


for (i=num1; i < num2; i++ )
{
long j;

for (j=2; j<i; j++)
{
long n = i%j;
if (n==0){
break;
}
}
if(i == j)
{
System.out.println(i);
}

}

}

}

最佳答案

是的,有更好的方法:sieve of Eratosthenes有两个数组:

  1. 2sqrt(M)的第一个数组;
  2. NM 的第二个数组。

关于java - 有没有更好的方法来做到这一点?(如果输入是 1 和 1000000 永远这样做),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com