public class Primes {
private boolean primes[];
public Primes(int number){
primes = new boolean[number+1];
Arrays.fill(primes, true);
primes[0] = false;
primes[1] = false;
for(int i = 2;i*i < number;i++){
if(primes[i]){
for(int j=i*i;j < number;j+=i){
primes[j] = false;
}
}
}
}
public boolean check(int number){
return primes[number];
}
}
Применение:
int N = 100;
Primes primes = new Primes(N);
for(int i=0;i
привет, мне нужна помощь.
помоги исправить ошибки
Array f[] не должны быть изменен!
f[] содержит информацию из решета Эратосфена, для четных чисел место здесь нет.
зарание благодарю
public class XY {
static final int N = 12345;
static byte f[] = new byte[(N + 1) / 2];
public static void main(String[] args) {
System.out.println(sieve());
System.out.println(twinPrime());
System.out.println(countPrime());
}
private static int sieve() {
int prime;
for (int i = 3; i < N; i++)
return f[i] = false;
for (int i = 2; i < Math.sqrt(N); i++) {
do {
return i;
} while (f[i] = true);
for (int j = i * i; j < N; j++) {
return f[j] = true;
}
}
for (int i = Math.sqrt(N) + 1; i <= N; i++) {
do {
return i;
} while (f[i] = true);
}
return i = prime;
}
private static int twinPrime() {
for (int n = 1; n <= N; n++) {
if (((6 * n — 1) % 2 != 0) && ((6 * n + 1) % 2 != 0)) {
return Integer.parseInt((n + "*"));
}
}
}
private static int countPrime() {
return Integer.bitCount(twinPrime());
}
}