Problem z prostym zadaniem - początkujący

0

Witam, jestem kompletnym nowicjuszem w języku Java, miałem do wykonania następujące zadanie:
Sprawdź, czy wprowadzona przez użytkownika liczba jest pierwsza (0 i 1 nie są pierwsze, 2 jest liczbą pierwszą, dalej standardowa definicja).
Do sprawdzenia użyj prostego algorytmu sprawdzającego, czy liczba dzieli się przez wszystkie liczby mniejsze od jej połowy. Jeśli dzieli się przez
którąkolwiek, nie jest pierwsza.
Niby mój program działa jak należy, lecz wydaje mi się, że dałoby się go napisać prościej. Nie wiem niestety co można poprawić/zmienić, byłbym wdzięczny
za jakieś porady jak dałoby się to napisać lepiej.

import java.util.Scanner;
public class Zadanie {
   public static void main (String args [])
   {
       System.out.println("Podaj liczbę");
       Scanner scanner = new Scanner(System.in);
       int liczba;
       liczba = scanner.nextInt();
       if(liczba==2||liczba==3||liczba==5)
           System.out.println("Liczba " + liczba + " jest liczbą pierwszą");
       if(liczba==0||liczba==1)
           System.out.println("Liczba " + liczba + " nie jest liczbą pierwszą");
       if(liczba==4)
           System.out.println("Liczba " + liczba + " jest liczbą złożoną");
      for(int a = 2; a<liczba/2; a++)
      {
          if(liczba%a==0) {
              System.out.println("Liczba " + liczba + " jest liczbą złożoną");
              break;
          }
          else if(a<(liczba/2)-1)
              continue;
          else
              System.out.println("Liczba " + liczba + " jest liczbą pierwszą");
               break;
      }
   }
}
1

Albo tak... wklejasz do edytora, zapisujesz jako lp.java, w terminalu kompilujesz javac lp.java. potem uruchamiasz, tylko zamiast używać scannera w terminalu dopisujesz liczbe jako pierwszy argument np java lp 24 i dostajesz wynik.

import java.util.*;

public class lp {

    private static int liczba;
    private static int n = 0;
    private static int c = 0;
    private static Set<Integer> numbers = new HashSet<Integer>();
      
    public static void main(String[] args) {  
        if (args.length > 0) {
            liczba = Integer.parseInt(args[0]);
        }
        try {
            n = liczba;
            while(n > 0) {
                //print(liczba / n +  " " + liczba % n);
                int a = liczba / n;
                int b = liczba % n;
                if (b == 0) {
                    numbers.add(n);
                }
                n--;
            } 
        } catch (ArithmeticException e){}
        print("result: " + numbers.size());
        if (numbers.size() != 2) {
            print(liczba + " nie jest liczba pierwsza");
        } else {
            print(liczba + " jest liczba pierwsza");
        }       
    }
    
    public static void print(Object o) {
        System.out.println(o);
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1