pytanie od zielonego - prosty algorytm

0

Witam. Mam do napisania algorytm, ktory bedzie zliczal liczby pierwsze z przedzialu od 0 do 99. Ma dzialac nastepująco: mamy dwie tablice o długości 100, w jednj mamy liczby od 0 do 99, w drugiej same zera. i teraz w momencie gdy liczba z pierwszej tablicy jest przez coś podzielna bez reszty, jej odpowiednik z drugiej tablicy jest ustawiany na 1. Napisalem jakiś algorytm, ale nie jestem pewien czy działa, bo cos sie krzaczy w funkcji main(). A to klasa która stworzyłem:

public class test {

int a[]= {0};
int b[];
int size = 100;

public test(){
	
}

public int szukacz(){
	
	for (int i = 0; i<size; i++){
		a[i]=0;}
	
	for (int j = 0; j<size; j++){
		b[j]=j;}
	

	int counter = 1;
	for (int k = 1; k<size; k++){
		if (a[k]==0){
			for(int s=k; s<size; s++){
				if (s%b[k]==0){
					a[s]=1;
					counter++;
				}
			}
		}
	}
	return counter;
	
}
public static void main(String[] args) {
	
	test t = new test();
	System.out.println(t.szukacz());
}

}

0

ostatnio pisałem sito więc
jeżeli się przyda to proszę :P

public class SitoErastotenesa{
	public boolean sito[];

	//Konstruktor:
	SitoErastotenesa(int n){
		sito = new boolean[n];
		double Msqrt = Math.sqrt(n);
		int length = sito.length, sqrt;
		sqrt = (int)Msqrt;
		
		for(int i = 0; i < length; i++)
			sito[i] = true;
		sito[0] = false;
		for(int i = 2; i <= sqrt; i++){
			if(sito[i - 1] == true){
				for(int j = 2; i * j <= n; j++)
					sito[i * j - 1] = false;
			}
		}
	}

	public boolean prime(int m){
		return sito[m - 1];
	}
}

jedyne co musisz zrobić to ywołać konstruktor tej klasy dla n = 100 i potem zrobić sobie pętle for która będzie wyglądać mneij więcej tak:
for(int i =0; i<sito.length; i++)
if(prime(i)) wynik+=i;

1 użytkowników online, w tym zalogowanych: 0, gości: 1