Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我得到了一个TLE,用于在java中打印给定2个数字(含)之间所有素数的总和_Java - Fatal编程技术网

我得到了一个TLE,用于在java中打印给定2个数字(含)之间所有素数的总和

我得到了一个TLE,用于在java中打印给定2个数字(含)之间所有素数的总和,java,Java,` import java.io.*; 导入java.util.*; 类TestClass{ 公共静态长素数(长l,长r){ 布尔标志=假; 长计数=0; 长i,j; 对于(i=l;i=2){ 对于(j=2;j0){ StringTokenizer s=新的StringTokenizer(br.readLine()); long l=long.parseLong(s.nextToken()); long r=long.parseLong(s.nextToken()); res[i]=素数(l,r

`

import java.io.*;
导入java.util.*;
类TestClass{
公共静态长素数(长l,长r){
布尔标志=假;
长计数=0;
长i,j;
对于(i=l;i=2){
对于(j=2;j0){
StringTokenizer s=新的StringTokenizer(br.readLine());
long l=long.parseLong(s.nextToken());
long r=long.parseLong(s.nextToken());
res[i]=素数(l,r);
t--;
i++;
}

对于(i=0;i拆分代码,消除不必要的变量。对于素数,只需重复到sqrt(n):

导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStreamReader;
类TestClass{
公共静态长素数(长l,长r){
长计数=0;

谢谢你的回答。
  import java.io.*;
  import java.util.*;
  class TestClass {
  public static long prime(long l,long r){
    boolean flag=false;
    long count=0;
    long i,j;
    for(i=l;i<=r;i++){
        flag=false;
        if(i>=2){
            for(j=2;j<i;j++){
               if(i%j==0){
                   flag=true;
                   break;
                }
            }
            if(flag==false){
                count+=i;
            }
        }
        
    }
    return count;
}
public static void main(String args[] ) throws IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int t=Integer.parseInt(br.readLine());
    int i=0;
    int x=t;
    long res[]=new long[t];
    while(t>0){
        StringTokenizer s=new StringTokenizer(br.readLine());
        long l=Long.parseLong(s.nextToken());
        long r=Long.parseLong(s.nextToken());
        res[i]=prime(l,r);
        t--;
        i++;
    }
    for(i=0;i<x;i++){
        System.out.println(res[i]);
    }
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class TestClass {

public static long sumPrime(long l, long r) {
    long count = 0;
    for (long n = l; n <= r; n++) {
        if (isPrime(n)) count += n;
    }
    return count;
}

public static boolean isPrime(long n) {
    if (n < 2) return false;
    if (n == 2) return true;
    for (long i = 2; i <= (long) Math.sqrt(n); i++) {
        if (n % i == 0) return false;
    }
    return true;
}

public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Loop: ");
    int t = Integer.parseInt(br.readLine());
    long[] res = new long[t];
    for (int i = 0; i < t; i++) {
        System.out.print("(l-r)?: ");
        String[] s = br.readLine().split(" ");
        long l = Long.parseLong(s[0]);
        long r = Long.parseLong(s[1]);
        res[i] = sumPrime(l, r);
    }
    System.out.print("Result: ");
    for (int i = 0; i < t; i++) {
        System.out.printf("%d  ", res[i]);
        }
    }
}