package metodit.listat.alkuluvut; import java.util.ArrayList; import java.util.List; public class MetoditListatAlkuluvut { public static void main(String[] args) { // Testausta List lista = new ArrayList<>(); lista.add(8); lista.add(4); lista.add(1); lista.add(2); lista.add(5); lista.add(12); lista.add(7); lista.add(11); lista.add(500); List indeksit = alkulukujenIndeksit(lista); for(int indeksi :indeksit) { System.out.println("Indeksissä " + indeksi + " on alkuluku " + lista.get(indeksi)); } } public static List alkulukujenIndeksit(List luvut) { ArrayList indeksit = new ArrayList<>(); // Tehdään indeksille oma muuttuja int index = 0; // Käydään listan luvut läpi for (int luku: luvut) { // Tehdään muuttuja flag joka on 0 tai 1, 0 tarkoittaa että kyseessä on alkuluku int flag = 0; // Jos luku on 0 tai 1 if(luku==0||luku==1){ // Silloin kyseessä on alkuluku } else { // Käydään for-loopissa kaikki luvut läpi niin, että tullaan alkuperäisen luvun puoliväliin eli luku/2 for ( int i = 2; i <= luku/2; i++){ // Tarkistetaan onko luku jaollinen if(luku % i == 0){ // Merkataan flag-muuttujaan että luku ei ole alkuluku flag=1; break; } } // Jos flag-muuttuja on edelleen 0 on kyseessä alkuluku if(flag==0) { // Lisätään indeksi listaan indeksit indeksit.add(index); } } // Lisätään indeksiä yhdellä index ++; } return indeksit; } }