26 Eylül 2012 Çarşamba

Sieve


import java.util.Scanner;


public class Sieve {

public static void main(String args[])
{

System.out.println("?.sayıya kadar olan asal sayıları görmek istiyorsunuz");
Scanner input = new Scanner(System.in);
int sayi = input.nextInt();

asalBul(sayi);


}

private static void asalBul(int sayi) {

int[] dizi = new int[sayi];
int j;
int k = 0;
int sayac = 0;

for(int i=2;i<sayi;i++)
{
dizi[i] = i;
}

int limit = (int) Math.floor(Math.sqrt(sayi));

for(int i=2;i<limit;i++)
{
if(dizi[i] != 0)
{
j = i*i;
while(j<sayi)
{
dizi[j] = 0;
sayac++;
j = j + i;
}
}
}

int[] newDizi = new int[sayi];
for(int i=2;i<sayi;i++)
{
if(dizi[i] != 0)
{
newDizi [k] = dizi[i];
k++;
}
}
 
System.out.print("\n\n");

for(int i=0;i<sayi;i++)
{
if(newDizi[i] != 0)
{
System.out.print(newDizi[i]+ " ");
}
}
}

}

Hiç yorum yok:

Yorum Gönder