📅  最后修改于: 2022-03-11 14:47:27.944000             🧑  作者: Mango
import java.util.Scanner;
public class BooleanPrimes
{
public static int counter = 0 ;
public static void main(String[] argh)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a number: ");
int size = scanner.nextInt();
boolean[] boolArray = new boolean[size+1];
printArray( generateBoolArray(boolArray,size+1),size);
}
public static boolean[] generateBoolArray(boolean[] boolArr, int size) // initializing boolean array with true values
{
for (int i = 2; i < size; ++i)
{
boolArr[i] = true;
}
return chickIfIndexPrime(boolArr, boolArr.length,size);
}
public static boolean[] chickIfIndexPrime(boolean[] arrIsPrime, int input, int size)
{
int start = 2;
while (start*start <= input) // first+second loop checking if start is prime
{
int i = 2;
boolean isprime = true;
while(i*i < start && isprime ) // second loop
{
if(start%i == 0)
{
isprime = false;
}
++i;
}
if(isprime==true)
{
for(int j=4; j=arrIsPrime.length)
{
break;
}
}
arrIsPrime[j]=false;
}
}
}
++start;
}
return arrIsPrime;
}
public static void printArray(boolean[] arr ,int size){
System.out.println("The prime numbers from 2 till "+(size));
int i=0,j = 0 ;
while(i