import java.util.*;
import java.io.*;
public class SimpleNum {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("Сколько первых простых чисел напечатать?");
int first = 2;
int count = Integer.parseInt(reader.readLine());
ArrayList<Integer> list = new ArrayList<>();
list.add(first);
for (int i = 0; i < count--; i++) {
first++;
int numCount = 0;
for (int num : list) {
if ((first % num) != 0) {
numCount++;
}
}
if (numCount == list.size()) {
list.add(first);
}
}
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
}
catch (Exception name) {
System.out.println("Упс... Ошибка! - " + name);
}
}
}
Никита
25 уровень
[Делал в Eclipse] Всем привет! написал программу (для себя), выводящую простые числа. Но у меня выводит нее столько, сколько вводится! Помогите пожалуйста, я не понимаю в чем проблема :\
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Никита
19 апреля 2020, 21:40
Поменял for (int i = 0; i < count--; i++) на:
int i = 1;
while (i != count) {
....
....
....
if (numCount == list.size()) {
list.add(first + " ");
i++;
}
}
И всё заработало!
Спасибо!
0
Никита
19 апреля 2020, 21:15
Теперь новая проблема:
При вводе числа больше 4 выводит 4 простых :\
![]()
0
Ksenia VolkovaJava Developer в DXCMaster
19 апреля 2020, 20:53
Что ты хотел сказать этим условием цикла?
0
Никита
19 апреля 2020, 20:55
Так как я уже в list добавил в первую ячейку 2, то чисел нужно просчитывать на одно меньше.
И должно было быть при вводе 4
Вывод:
2 3 5 7
Так как 2 уже добавлена, я считаю 3 следующих числа
0
Ksenia VolkovaJava Developer в DXCMaster
19 апреля 2020, 21:02
count-- будет уменьшать значение count на каждой итерации цикла.
Кроме того, разве число итераций этого цикла определяет, сколько чисел будет добавлено в list? Нет, оно определяет, сколько чисел ты проверишь, а не сколько положишь в список.
0
Никита
19 апреля 2020, 21:05
Аа, понял, попробую исправить. Спасибо!
0
Никита
19 апреля 2020, 20:42
Я так понял - что ошибка в list.size() ????
Или нет?
Я запутался (
0
Никита
19 апреля 2020, 20:33
Простые числа выводит правильно. Я проверял...
0