Hi, I tried seive algorithm for printing the no of primes within the limit. I assigned the largestno to the boolean array that may be causing the error. Kindly help me to solve this issue.
enter code here
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class PrimeSeive1 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
PrintWriter out=new PrintWriter(System.out);
Integer total=in.nextInt();
while(total > 0){
Integer firstNo=in.nextInt();
Integer lastNo=in.nextInt();
List<Integer> primeNo=primeSeive(firstNo,lastNo);
for(int i=0;i<primeNo.size();i++){
System.out.println(primeNo.get(i));
}
total--;
}
}
private static List<Integer> primeSeive(Integer firstNo, Integer lastNo) {
Boolean num[]=new Boolean[lastNo+2];
List<Integer> result=new ArrayList<Integer>();
num[0]=true;
num[1]=true;
for(int i=2;i<=lastNo;i++){
num[i]=false;
}
for(int i=2;i<=Math.sqrt(lastNo);i++){
for(int j=i+i;j<=lastNo;j=j+i){
if(num[j]==false){
num[j]=true;
}
}
}
for(int i=0;i<num.length;i++){
if(num[i]==false){
result.add(i);
}
}
return result;
}
}