Я пытаюсь выяснить, как я буду манипулировать списками, чтобы найти все простые числа до числа, предоставленного пользователем, у меня есть список шагов, которым я пытаюсь следовать, которые
создать и заполнить список возможных простых чисел
В основном это arrayList, который содержит все числа до указанного числа, у меня эта часть сделана
создать список для простых чисел
У меня есть эта часть вниз
пока возможны номера
То есть список возможных простых чисел не пуст.
добавить первое число из списка возможных в список простых чисел
Снял эту часть тоже
удалить его и его кратные из списка возможных простых чисел
это то место, где я начинаю немного ошеломляться, я думал, что у меня есть эта часть, но я получаю ошибку, я не знаю почему.
печать простых чисел
вывести список простых чисел, по сути просто System.out.println (простые числа);
Вот мой код на данный момент
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Sieve {
public static void main(String[] args) {
int maxNum;
String howItsGoing, greatDetail;
Scanner scnr = new Scanner(System.in);
Scanner scnr2 = new Scanner(System.in);
// get upper limit
System.out.print("What's the biggest number I should check? ");
maxNum = scnr.nextInt();
// check for verbose mode
System.out.print("Shall I tell you how it's going? ");
howItsGoing = scnr2.nextLine().toUpperCase();
System.out.print("Shall I tell you in great detail? ");
greatDetail = scnr2.nextLine().toUpperCase();
// create and fill list of possible primes
List<Integer> nums = new LinkedList<>();
for (int i = 2; i <= maxNum; i++) {
nums.add(i);
}
// create list for the primes
List<Integer> primes = new ArrayList<>();
// while there are still possible numbers
// add the first number from the list of possibles to the list of primes
for(int i=2; i<=maxNum; i++) {
if(2 % i == 0) {
nums.remove((Integer) i);
primes.add((Integer) i);
}
}
// remove it and its multiples from the list of possible primes
// print the prime numbers
System.out.println("Primes up to " + maxNum);
System.out.println(nums);
System.out.println(primes);
}
}
игнорируйте строку howItsGoing и greatDetail, я добавлю их позже.
Как мне заставить эту программу работать правильно, у каждого другого вопроса есть решение в логическом массиве, а это не то, что я хочу. Есть идеи?
OUTPUT
What's the biggest number I should check? 9
Shall I tell you how it's going? n
Shall I tell you in great detail? n
Primes up to 9
[3, 4, 5, 6, 7, 8, 9]
[2]