Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
59 / 48 / 13
Регистрация: 03.09.2013
Сообщений: 474
1

Найти простые числа в заданном интервале

08.05.2014, 20:37. Показов 7076. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята помогите написать программу поиска простых чисел в заданном интервале.

Добавлено через 24 минуты
Есть наработки
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int n = 6000;
                boolean[] primeArray = new boolean[n];
                primeArray[0] = true;
                primeArray[1] = true;
                for (int i = 0; i < primeArray.length; i++) {
                    if (!primeArray[i]) {
                        for (int j = 2 * i; j < primeArray.length; j += i) {
                            primeArray[j] = true;
                        }
                    }
                }
                
                for (int i=0;i<primeArray.length;i++) {
                    if (!primeArray[i]) {
                        System.out.println(i+" is prime");
                    }
                }
                verifyArray(primeArray);
                
            }
            
            public static void verifyArray(boolean[] primeArray) {
                for (int i=0;i<primeArray.length;i++) {
                    BigInteger bi = new BigInteger(i+"");
                    if (primeArray[i]==bi.isProbablePrime(20)) {
                        System.out.println("Error: "+i+" flag is wrong");
                    }
                }
            }
        }
это от двух до N

Java
1
2
3
4
5
6
7
8
int primes = new int[P]; // заполняем его простыми до корня из n  
boolean sieve = new boolean[n-m+1]; // вторичное решето  
Arrays.fill(sieve, true);
for (int i= 0; i<P; i++) {
   int h = m % primes[i];
   int j = h ==  0 ?  0 : primes[i] - h;
   for (; j<=n-m; j+=primes[i])
      sieve[j] = false;
вот так должно быть в интервале, но хз как дальше
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2014, 20:37
Ответы с готовыми решениями:

Найти все простые числа в заданном интервале
Добрый день. Задача следующая: ввести количество подсчётов (в задаче - cases). Потом столько же...

Найти все простые числа в заданном интервале
Здравствуйте,можете подсказать,что не верно в задаче : у из интервала от A до B найти все...

Найти парные простые числа в заданном интервале
Помогите создать программу Составить программу: в интервале от a до b найти все парные простые...

Найти абсолютно простые числа в заданном интервале
Число называется абсолютно простым, если при любой перестановке его цифр получается простое число....

10
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
08.05.2014, 21:13 2
всё проще, если задание правильно уяснил
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package pack;
 
public class Main {
    static final int START = 1;
    static final int END = 200;
    
    public static void main(String[] args) {
        
        for (int i = START; i < END; i++) {
            if (isSimpleNumber(i)) {
                System.out.println(i);
            }
        }
 
    }
 
    public static boolean isSimpleNumber(int value) {
        if ((value % 2 == 0) ||
            (value % 3 == 0) ||
            (value % 5 == 0) ||
            (value % 7 == 0)) {
            return false;
        }
 
        return true;
    }
}
0
59 / 48 / 13
Регистрация: 03.09.2013
Сообщений: 474
08.05.2014, 21:23  [ТС] 3
Не могу оценить то что ты написал, так как не работает почему-то, но так на взгляд, вроде не то))

Добавлено через 30 секунд
А пробовал запускать мой вариант?
0
27 / 27 / 24
Регистрация: 23.04.2011
Сообщений: 64
08.05.2014, 21:24 4
Попробуйте такой вариант,
Java
1
2
3
4
5
6
7
8
9
10
11
12
public static void main(String args[])
         {
             int startValue = 2;
             int endValue = 20;
             outer:for(int i = startValue; i < endValue; i++)
             {
                 for(int j = 2; j < i; j++)
                 if(i%j == 0) continue outer;
                 System.out.print(i + ", ");
             }
             
         }
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
08.05.2014, 21:24 5
кстати в своем варианте я немного накосячил, хотел сделать с минимальным количеством проверок, "новый лисапед"
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static boolean isSimpleNumber(int value) {
        if ((value == 2) ||
                (value == 3) ||
                (value == 5) ||
                (value == 7)) {
            return true;
        }
 
        if ((value % 2 == 0) ||
                (value % 3 == 0) ||
                (value % 5 == 0) ||
                (value % 7 == 0)) {
            return false;
        }
 
        return true;
    }
0
27 / 27 / 24
Регистрация: 23.04.2011
Сообщений: 64
08.05.2014, 21:24 6
delete
0
59 / 48 / 13
Регистрация: 03.09.2013
Сообщений: 474
08.05.2014, 21:30  [ТС] 7
Не запускается твой варинт
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
08.05.2014, 21:31 8
вы научитесь программы компилировать, почитайте раздел для новичков, в котором указано, что имя класса должно быть 1в1 с именем файла класс.java с учетом букв. Второе - если есть package - то у вас оно тоже должно быть именно там. Не запускаться оно просто не может
0
59 / 48 / 13
Регистрация: 03.09.2013
Сообщений: 474
08.05.2014, 21:35  [ТС] 9
Прошу прощения, открыто много проектов, кидал к дроиду))))
0
27 / 27 / 24
Регистрация: 23.04.2011
Сообщений: 64
08.05.2014, 22:08 10
Ну как задача решена ?
0
59 / 48 / 13
Регистрация: 03.09.2013
Сообщений: 474
09.05.2014, 12:02  [ТС] 11
Да, огромное спасибо всем ребят)
0
09.05.2014, 12:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2014, 12:02
Помогаю со студенческими работами здесь

Найти все простые числа, что лежат в заданном интервале
Вот меня заинтересовала такая задача, есть 2 числа, пусть A ;B как найти все простые числа что...

Вывести все простые числа в заданном интервале
Доброго времени суток! Необходима Ваша помощь в написании программы на visual c++. Программы...

Получить все простые числа в заданном интервале
Пожалуйста помогите решить задачу, с++ вообще не понимаю, а сдавать надо. Даны натуральные числа a,...

Вывести все простые числа в заданном интервале
Ввести с клавиатуры натуральные числа a, b (a ≤ b, a &gt; 1). Выести все простые числа pr,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru